PHPExtension

PHP で行列積を高速に計算するエクステンションを作った

PHP でも数値計算したいし、行列ライブラリくらいさすがにあるだろうと思っていたのですが、軽く探した限りでは見当たらなかったので作りました。 すべてを PHP コードで実装したものならいくつかあるようですが、以下で見るように PHP コードでの実装では遅すぎてお話になりません。今回は PHP のエクステンション機能を使って C 言語による実装をしました。また、更に高速化をするために線形代数数値計算ライブラリである OpenBLAS とそ […]

動作中のPHPがZTSかNTSか判定する方法

タイトルの通り、一部の人にだけ便利なPHP情報をご紹介します。 ZTSとは ZTS (Zend Thread Safe) は、マルチスレッド環境に対応するためのPHPの機構です。 マルチスレッド環境では、同じメモリ領域を複数のスレッドが共有します。複数のスレッドが同時に一つのリソース(たとえばグローバル変数)を読み書きする可能性があるので、シングルスレッド環境とは異なるプログラミングが必要になります。マルチスレッド環境で安全に動くような […]

PHP extensionのmake testに関するTIPS

PHP extensionを書いているとmake testすることが多いと思うんですが、デフォルトの挙動のままだとテスト完了時に下記のように「PHP QAチームにレポートするかい?」と言われて困惑したりします。 $ make test (略) This report can be automatically sent to the PHP QA team at http://qa.php.net/reports and http://n […]