hnwの日記

SplFixedArrayはPHP標準の配列よりメモリを消費しない

PHP5.3.0から実装されたSplFixedArrayというSPLクラスがあります。これはマニュアルによれば下記のようなクラスです。

SplFixedArray クラスは配列の主要な機能を提供します。 SplFixedArray と通常の PHPの配列との主な違いは、 SplFixedArray は固定長であって、整数値で指定した範囲内の添字しか使用できないところです。これにより、より高速な配列の実装が可能となりました。


http://docs.php.net/manual/ja/class.splfixedarray.php


制限はあるけれども高速な配列もどきのクラスだと紹介してありますね。このクラスについて少し調べてみました。

SplFixedArrayの速度

まずはSplFixedArrayが本当に速いのかどうか、下記のようなプログラムで実験してみました。実験はPHP5.3.0で行いました。

続きを読む