テストデータとして 金沢市オープンデータ から取得した JSON 形式で 351 KB になるデータを使用した。PHP 5.4.17 (cli) でそれぞれ 1000 回実行したときの実行時間を以下に示す。
|
実行時間 [s] |
比 |
serialize (array) |
2.06 |
+26% |
serialize (stdClass) |
2.06 |
+26% |
json_encode (array) |
1.58 |
- |
json_encode (stdClass) |
1.58 |
- |
配列でも stdClass でも速度は変わらない。
デコード
|
実行時間 [s] |
比 |
unserialize (array) |
3.84 |
+3% |
unserialize (stdClass) |
3.73 |
- |
json_decode (array) |
4.44 |
+19% |
json_decode (stdClass) |
4.91 |
+32% |
unserialize は stdClass のほうが僅かに速い。いずれも json_decode よりも高速である。
json_decode (array) は第2引数に true を設定して連想配列として返した場合。配列のほうが速い。
エンコードとデコードを同数行う場合
|
実行時間 [s] |
比 |
serialize + un〜 (array) |
5.90 |
+2% |
serialize + un〜 (stdClass) |
5.79 |
- |
json_encode + decode (array) |
6.02 |
+4% |
json_encode + decode (stdClass) |
6.49 |
+12% |
JSON + stdClass を除いて実行時間はほとんど同じになった。