TITLE:Array_Typed class for PHP
標準の PHP array に比べてメモリを節約する配列風クラスです。但し処理時間は倍以上遅くなります。
目安として Uint8 配列は 140倍メモリ節約できるけど処理時間が2倍かかります。Uint16 だと 70倍節約できて処理時間が3〜4倍。
- https://github.com/yoya/Array_Typed
- 解説 https://speakerdeck.com/yoya/array-typed
* インストール [#install]
$ git clone git@github.com:yoya/Array_Typed.git
$ cd Array_Typed
$ composer install
* 使い方 [#usage]
<?php
require 'Array/Uint8.php';
$a = new Array_Uint8(10);
$a[9] = 9;
print_r($a->toArray());
print_r("count" . count($a));
foreach ($a as $e) { print_r($e); }
* 注意点 [#notice]
- はじめの指定した数の範囲内しかアクセスできない。array と違って拡張しません。
- array 関連のメソッドを使えない。toArray で変換して使って下さい。
- 配列の要素を参照渡しできない。
- is_array で引っかからない。
* 課題 [#todo]
- slice が手抜きの実装で、頑張れば相当高速化できるはず。使う人がいたら頑張るので連絡下さい。
* ブログ [#blog]
- http://d.hatena.ne.jp/yoya/20151010/array Array_Typed 1.0.0 をリリースしました
- http://d.hatena.ne.jp/yoya/20151012/array Array_Typed 1.0.4 をリリースしました