そこで、最もコスト効率の高い方法で PHP でオブジェクトをシリアル化して保存する方法を考えました。そこで、以前の同僚が推奨していた JSON エンコードおよびデコード関数を思い出しました。
彼によると、json_encode と json_decode は組み込みのシリアライズ関数とアンシリアライズ関数よりも効率的です。
そこで、同僚の言ったことが真実かどうかを確認するために実験を行うことにしました。
実験はそれぞれPHP 5.2.13とPHP 5.3.2環境で実施されました。
同じ変数を使用して、上記の方法でエンコードまたはデコードを 10,000 回実行し、各関数を 10,000 回実行するのに必要な時間を取得します。
以下は PHP 5.2.13 環境でのテスト結果の 1 つです:
コードをコピーします コードは次のとおりです:
json : 190
serialize : 257
json_encode : 2041
json_de コード: 0.18004894256592
serialize: 0.063642024993896
unserialize: 0.086990833282471
DONE
以下は、PHP 5.3.2 環境でのテストの 1 つの結果です。
コードをコピーします コードは次のとおりです:
json : 190
シリアル化 : 257
json_encode : 0.0628058 91036987
json_decode : 0.14239192008972
シリアル化 : 0.048481941223145 ize : 0.05927300453186
完了
この実験の結論は次のとおりです:
json_encode と json_decode の効率はそれより高くありません。デシリアライズ時とアンシリアライズ時では約2倍のパフォーマンス差があり、PHP 5.3の実行効率はPHP 5.2に比べて若干向上しています。
以下はテストに使用したコードです:
コードをコピーします コードは次のとおりです:
$target = array (
'name' => 'All-roundヘルメット'、
'品質' => '青'、
'is_bind' => 1、
'デマンド条件' => 1 、
)、
'quality_attr_sign' =>array (
'HeroStrength' => 8、
'HeroAgility' => 8、
'HeroIntelligence' => 8、
)、
$json); = json_encode($target) ;
$seri = シリアル化($target);
echo "json :tt" . "rn" :t" rnrn";
$stime = microtime(true);
for ($i = 0; $i {
json_encode($target);
}
$etime = microtime(true) ;
echo "json_encode: t" . "rn"; ------ --
$stime = microtime(true);
for ($i = 0; $i {
json_decode($json)
}
$etime = microtime(true);
echo "json_decode :t" . "rnrn"; ----- -------
$stime = microtime(true);
for ($i = 0; $i {
serialize($target);
$etime = microtime(true);
echo "シリアル化:t" . "rn"; ----- ------------
$stime = microtime(true);
for ($i = 0; $i {
unserialize( $seri);
$etime(true);
echo 'DONE.';
http://www.bkjia.com/PHPjc/321975.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/321975.html
技術記事
そこで、最もコスト効率の高い方法で PHP でオブジェクトをシリアル化して保存する方法を考えました。そこで、以前の同僚が推奨していた JSON エンコードおよびデコード関数を思い出しました。 彼によると、json_encode と json_deco...