• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            igbinary vs serialize vs json_encode

            轉(zhuǎn)載自:http://blog.rebill.info/archives/igbinary-vs-serialize-vs-json_encode.html

            最近看到memcached擴展支持額外的序列化方式 -- igbinary,這是一個未收錄到pecl的php擴展,它提供的兩個主要方法:

            • igbinary_serialize
            • igbinary_unserialize

            據(jù)稱可以用它來代替php自帶的序列化函數(shù)serialize,性能更好,而且占用的字節(jié)數(shù)也更少。下面我就 igbinary ,serialize ,json_encode三者的性能做了一個簡單的測試。

            測試

            以一個包含1000000個元素的數(shù)組做為原始數(shù)據(jù),分別以json, serialize, igbinary進行序列化和反向操作。

            ini_set('memory_limit', '512m');
            $array = array_fill(0, 1000000, rand(1, 9999));
             
            $start = microtime(true);
            $export = json_encode($array);
            $end = microtime(true);
            $duration = $end - $start;
            print('JSON Encode: ' . $duration . PHP_EOL);
             
            $start = microtime(true);
            $import = json_decode($export);
            $end = microtime(true);
            $duration = $end - $start;
            print('JSON Decode: ' . $duration . PHP_EOL);
             
            $start = microtime(true);
            $export = serialize($array);
            $end = microtime(true);
            $duration = $end - $start;
            print('Serialize: ' . $duration . PHP_EOL);
             
            $start = microtime(true);
            $import = unserialize($export);
            $end = microtime(true);
            $duration = $end - $start;
            print('Serialize: ' . $duration . PHP_EOL);
             
            $start = microtime(true);
            $export = igbinary_serialize($array);
            $end = microtime(true);
            $duration = $end - $start;
            print('Igbinary Serialize: ' . $duration . PHP_EOL);
             
            $start = microtime(true);
            $import = igbinary_unserialize($export);
            $end = microtime(true);
            $duration = $end - $start;
            print('Igbinary Serialize: ' . $duration . PHP_EOL);


            測試結(jié)果

            JSON Encode: 0.084825992584229
            JSON Decode: 0.34976410865784
            Serialize: 0.38241410255432
            Serialize: 7.7904229164124
            Igbinary Serialize: 0.046916007995605
            Igbinary Serialize: 0.23396801948547

            從測試結(jié)果來看,速度方面優(yōu)先級排列為 igbinary > json > serialize。同時我們也可以看到,php原生的serialize在對大對象進行反向操作時,速度真是掉隊一大截了。

            占用字節(jié)數(shù)對比

            • json: 5000001
            • serialize: 15888902
            • igbinary: 7868681

            在沒有中文字符的情況下,json勝出,igbinary次之,serialize又被甩了幾條街。

            一圖頂千言

            柱狀圖越矮小的性能越好

            chart.png

            原文地址:http://www.ooso.net/archives/538

            posted on 2014-07-02 10:21 楊粼波 閱讀(908) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            免费精品国产日韩热久久| 欧美日韩精品久久久免费观看| 国产亚洲综合久久系列| 99精品伊人久久久大香线蕉| 日韩十八禁一区二区久久| 2021国内精品久久久久久影院| 狠狠88综合久久久久综合网| 久久久噜噜噜久久中文字幕色伊伊| 久久久久久精品无码人妻| 国产精品美女久久久久网| 无码国内精品久久人妻麻豆按摩| 久久精品www人人爽人人| 国产成人久久精品二区三区| 久久久久亚洲AV成人网人人网站| 成人精品一区二区久久| 99久久精品免费看国产一区二区三区 | 国内精品人妻无码久久久影院| 亚洲国产精品久久| 久久精品欧美日韩精品| 久久亚洲国产成人影院| 国产精品青草久久久久福利99| 久久久噜噜噜久久熟女AA片| 久久只这里是精品66| 国产精品久久久天天影视香蕉 | 精品无码人妻久久久久久| 久久久久高潮毛片免费全部播放 | 亚洲色婷婷综合久久| 国内精品久久久久久久久电影网| 久久亚洲私人国产精品| 欧美精品国产综合久久| 久久国产精品免费一区二区三区| 久久精品国产亚洲AV大全| 亚洲中文精品久久久久久不卡| 人妻无码久久精品| 蜜臀久久99精品久久久久久| 久久99精品久久久久久水蜜桃| 亚洲国产精品久久久久久| 久久这里只有精品久久| 欧美精品一本久久男人的天堂| 99久久免费国产精精品| 精品久久久久久中文字幕|