Top > Array_Typed

標準の PHP array に比べてメモリを節約する配列風クラスです。但し処理時間は倍以上遅くなります。

目安として Uint8 配列は 140倍メモリ節約できるけど処理時間が2倍かかります。Uint16 だと 70倍節約できて処理時間が3〜4倍。

インストール

$ git clone git@github.com:yoya/Array_Typed.git
$ cd Array_Typed
$ composer install

使い方

<?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); }

注意点

  • はじめの指定した数の範囲内しかアクセスできない。array と違って拡張しません。
  • array 関連のメソッドを使えない。toArray で変換して使って下さい。
  • 配列の要素を参照渡しできない。
  • is_array で引っかからない。

課題

  • slice が手抜きの実装で、頑張れば相当高速化できるはず。使う人がいたら頑張るので連絡下さい。

ブログ


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: Tue, 24 Nov 2015 15:20:55 JST (3070d)