亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2010年06月09日 10:46:27   作者:  
今天偶然在想,如果用PHP寫一個類似BDB的基于文件的Key-Value小型數(shù)據(jù)庫用于存儲非結(jié)構(gòu)化的記錄型數(shù)據(jù),不知道效率會如何?
于是便聯(lián)想到PHP中的對象怎么樣序列化存儲性價比最高呢?接著想到了之前同事推薦的JSON編碼和解碼函數(shù)。
據(jù)他所說,json_encode和json_decode比內(nèi)置的serialize和unserialize函數(shù)要高效。
于是我決定動手實驗,證實一下同事所說的情況是否屬實。
實驗分別在PHP 5.2.13和PHP 5.3.2環(huán)境下進(jìn)行。
用同一個變量,分別用以上方式進(jìn)行編碼或解碼10000次,并得出每個函數(shù)執(zhí)行10000次所需的時間。
以下是PHP 5.2.13環(huán)境其中一次測試結(jié)果:
復(fù)制代碼 代碼如下:

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é)果:
復(fù)制代碼 代碼如下:

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

這次實驗得到的結(jié)論是:
json_encode和json_decode的效率并沒有比serialize和unserialize的效率高,在反序列化的時候性能相差兩倍左右,PHP 5.3執(zhí)行效率比PHP 5.2略有提升。
以下是我用來做測試的代碼:
復(fù)制代碼 代碼如下:

<?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 :\t\t" . strlen($json) . "\r\n";
echo "serialize :\t" . strlen($seri) . "\r\n\r\n";
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
json_encode($target);
}
$etime = microtime(true);
echo "json_encode :\t" . ($etime - $stime) . "\r\n";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
json_decode($json);
}
$etime = microtime(true);
echo "json_decode :\t" . ($etime - $stime) . "\r\n\r\n";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
serialize($target);
}
$etime = microtime(true);
echo "serialize :\t" . ($etime - $stime) . "\r\n";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
unserialize($seri);
}
$etime = microtime(true);
echo "unserialize :\t" . ($etime - $stime) . "\r\n\r\n";
echo 'DONE.';
?>

相關(guān)文章

  • php mysqli查詢語句返回值類型實例分析

    php mysqli查詢語句返回值類型實例分析

    這篇文章主要介紹了php mysqli查詢語句返回值類型,結(jié)合實例形式分析了php+mysqli常用的查詢、插入語句的使用與返回值類型,需要的朋友可以參考下
    2016-06-06
  • php實現(xiàn)MD5加密16位(不要默認(rèn)的32位)

    php實現(xiàn)MD5加密16位(不要默認(rèn)的32位)

    今天做了個php鏈接mssql數(shù)據(jù)庫,數(shù)據(jù)庫中的表中字段使用MD5十六加密的。但是php中的MD5默認(rèn)是32位,導(dǎo)致登錄程序沒辦法使用md5加密跟表中字段匹配,在網(wǎng)上一搜也有不少人有這方面的困惑,后來找到一個解決辦法,是正確的,就記錄下來
    2013-08-08
  • SWFUpload與CI不能正確上傳識別文件MIME類型解決方法分享

    SWFUpload與CI不能正確上傳識別文件MIME類型解決方法分享

    問題:swfupload上傳任何文件的mime類型均為application/octet-stream。
    2011-04-04
  • php 讀寫json文件及修改json的方法

    php 讀寫json文件及修改json的方法

    下面小編就為大家分享一篇php 讀寫json文件及修改json的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • php eval函數(shù)用法總結(jié)

    php eval函數(shù)用法總結(jié)

    這個函數(shù)我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代碼并且運行哦,eval是函數(shù)不可在php中禁止,以前我就以為可以在php.ini禁止此函數(shù),結(jié)果失敗了
    2012-10-10
  • php編程實現(xiàn)簡單的網(wǎng)頁版計算器功能示例

    php編程實現(xiàn)簡單的網(wǎng)頁版計算器功能示例

    這篇文章主要介紹了php編程實現(xiàn)簡單的網(wǎng)頁版計算器功能,涉及php簡單表單操作與數(shù)值運算相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • 六個步驟,從零開始教你搭建基于WordPress的個人博客

    六個步驟,從零開始教你搭建基于WordPress的個人博客

    這篇文章主要介紹了六個步驟,從零開始教你搭建基于WordPress的個人博客,步驟講解的很清楚,不知道如何搭建wordpress的同學(xué)可以跟著搭建下
    2021-01-01
  • PHP的引用詳解

    PHP的引用詳解

    本文這里向大家全面展示了PHP的引用,十分的詳細(xì),搭配示例,是篇非常不錯的文章,推薦給有需要的小伙伴們參考下。
    2015-02-02
  • PHP操作Mongodb封裝類完整實例

    PHP操作Mongodb封裝類完整實例

    這篇文章主要介紹了PHP操作Mongodb封裝類,結(jié)合完整實例形式分析了php封裝的針對MongoDB數(shù)據(jù)庫常見的基本配置、連接、增刪改查、集合等操作定義與使用方法,需要的朋友可以參考下
    2018-06-06
  • php獲取漢字拼音首字母的方法

    php獲取漢字拼音首字母的方法

    這篇文章主要介紹了php獲取漢字拼音首字母的方法,需要的朋友可以參考下
    2015-10-10

最新評論