欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          淺析PHP中json_encode、json_decode與serialize、unserialize的性能測試

          淺析PHP中json_encode、json_decode與serialize、unserialize的性能測試

          今天偶然在想,如果用PHP寫一個類似BDB的基于文件的Key-Value小型數(shù)據(jù)庫用于存儲非結(jié)構(gòu)化的記錄型數(shù)據(jù),不知道效率會如何?

          于是便聯(lián)想到PHP中的對象怎么樣序列化存儲性價比最高呢?接著想到了之前同事推薦的JSON編碼和解碼函數(shù)。
          據(jù)他所說,json_encodejson_decode比內(nèi)置的serializeunserialize函數(shù)要高效。
          于是我決定動手實驗,證實一下同事所說的情況是否屬實。
          實驗分別在PHP 5.2.13和PHP 5.3.2環(huán)境下進行。
          用同一個變量,分別用以上方式進行編碼或解碼10000次,并得出每個函數(shù)執(zhí)行10000次所需的時間。
          以下是PHP 5.2.13環(huán)境其中一次測試結(jié)果:

          代碼如下:

          json : 190  serialize : 257  json_encode : 0.08364200592041  json_decode : 0.18004894256592  serialize : 0.063642024993896  unserialize : 0.086990833282471  DONE.

          以下是PHP 5.3.2環(huán)境其中一次測試結(jié)果:

          代碼如下:

          json : 190  serialize : 257  json_encode : 0.062805891036987  json_decode : 0.14239192008972  serialize : 0.048481941223145  unserialize : 0.05927300453186  DONE.

          這次實驗得到的結(jié)論是:
          json_encodejson_decode的效率并沒有比serializeunserialize的效率高,在反序列化的時候性能相差兩倍左右,PHP 5.3執(zhí)行效率比PHP 5.2略有提升。

          代碼如下:

          <?php  $target = array (  'name' => '全能頭盔',  'quality' => 'Blue',  'ti_id' => 21302,  'is_bind' => 1,  'demand_conditions' =>  array (  'HeroLevel' => 1,  ),  'quality_attr_sign' =>  array (  'HeroStrength' => 8,  'HeroAgility' => 8,  'HeroIntelligence' => 8,  ),  );  $json = json_encode($target);  $seri = serialize($target);  echo "json :tt" . strlen($json) . "rn";  echo "serialize :t" . strlen($seri) . "rnrn";  $stime = microtime(true);  for ($i = 0; $i < 10000; $i ++)  {  json_encode($target);  }  $etime = microtime(true);  echo "json_encode :t" . ($etime - $stime) . "rn";  //----------------------------------  $stime = microtime(true);  for ($i = 0; $i < 10000; $i ++)  {  json_decode($json);  }  $etime = microtime(true);  echo "json_decode :t" . ($etime - $stime) . "rnrn";  //----------------------------------  $stime = microtime(true);  for ($i = 0; $i < 10000; $i ++)  {  serialize($target);  }  $etime = microtime(true);  echo "serialize :t" . ($etime - $stime) . "rn";  //----------------------------------  $stime = microtime(true);  for ($i = 0; $i < 10000; $i ++)  {  unserialize($seri);  }  $etime = microtime(true);  echo "unserialize :t" . ($etime - $stime) . "rnrn";  echo 'DONE.';  ?>

          相關(guān)學(xué)習(xí)推薦:PHP編程從入門到精通

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號