serializeとjson_encodeのパフォーマンス比較
json_encodeよりもserializeのほうが早いよねーと思い込んでいてとくに比較もしていなかったのですが、ふとやってみました。
ベンチ用のコードはこんな感じで。
<?php require_once('Benchmark/Timer.php'); $t = new Benchmark_Timer; for($i=0;$i<1000;$i++) $array[] = $i ; $t->start(); json_encode($array); $t->setMarker('json_encode'); serialize($array); $t->setMarker('serialize'); $t->stop(); $t->display();
実行してみた結果はコチラ。
---------------------------------------------------------- marker time index ex time perct ---------------------------------------------------------- Start 1265711724.38723200 - 0.00% ---------------------------------------------------------- json_encode 1265711724.38745300 0.00022101402282715 26.37% ---------------------------------------------------------- serialize 1265711724.38805300 0.00059986114501953 71.58% ---------------------------------------------------------- Stop 1265711724.38807000 1.7166137695312E-5 2.05% ---------------------------------------------------------- total - 0.00083804130554199100.00% ----------------------------------------------------------
json_encodeの方が早い・・・配列の大きさや形式をかえてみたりしましたが、逆転することはありませんでした。個人的にはかなり意外な結果。
参考
まぁとっくの昔に試していた人がいたわけで・・・
PHP5.2.0でserialize()とjson_encode()はどちらが速いのか