PHP

PHPで配列データを外部保存する

PHPでarrayを保存する必要があったので,とりあえずどっちが早いか検証してみた.(DBに収納する以外の方法を検討したかった.)

1. serialize して書き出して,unserializeする.
2. var_export で書き出して evalで復元する

test.php
///PHP 7.1.7
//配列データの準備
$array =[];
for ($i=0; $i <100000 ; $i++) { 
    $array[$i] =rand(9000000,1000000000);
}
file_put_contents("./se.dat",serialize($array));
$text =var_export($array, true);
file_put_contents("./ex.dat",$text);

//1.シリアライズ
$start = microtime(true);
$searray = unserialize(file_get_contents("./se.dat"));
$end = microtime(true);
echo "unserialize+file_get_contents 処理時間は" . ($end - $start) . "秒\n";
////unserialize+file_get_contents 処理時間は0.010754108428955秒

//2.eval
$start = microtime(true);
$evaarray = eval(file_get_contents("./ex.dat").";");
$end = microtime(true);
echo "eval + file_get_contents処理時間は" . ($end - $start) . "秒\n";
////eval + file_get_contents処理時間は0.041887998580933秒

unserializeの方が速そう.
複数回,回してると1.シリアライズの方が速度は安定しない.
jsonで書き出すのは遅そうだから試してないので今度試す,