PHP 序列化對比

2021-09-26 04:16:15 字數 2293 閱讀 4291

<?php

ini_set('memory_limit', '512m');

$array = array_fill(0, 1000000, rand(1, 9999));

//json

$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);

//serialize

$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('unserialize: '.$duration.php_eol);

//igbinary擴充套件

$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 unserialize: '.$duration.php_eol);

//msgpack擴充套件

$start = microtime(true);

$export = msgpack_pack($array);

$end = microtime(true);

$duration = $end - $start;

print('msgpack serialize: '.$duration.php_eol);

$start = microtime(true);

$import = msgpack_unpack($export);

$end = microtime(true);

$duration = $end - $start;

print('msgpack unserialize: '.$duration.php_eol);

//hprose擴充套件

$start = microtime(true);

$export = hprose_serialize($array);

$end = microtime(true);

$duration = $end - $start;

print('hprose serialize: '.$duration.php_eol);

$start = microtime(true);

$import = hprose_unserialize($export);

$end = microtime(true);

$duration = $end - $start;

print('hprose unserialize: '.$duration.php_eol);

?>

最優的為msgpack,不過igbinary和msgpack相差真的非常小,而在占用空間方面,小資料時msgpack勝出,大資料時igbinary勝出,算是各有千秋。所以,如果追求極致的效能,可以考慮使用msgpack,如果對是使用空間要求苛刻,那就選擇igbinary方式

PHP序列化 序列化

將物件序列號 當需要將物件長久儲存時或用於網路傳輸等.將物件序列號成字串儲存 class demo 魔術方式,當物件序列號時自動呼叫,此時會序列號陣列中的屬性.如果沒有該方法,則序列號所有屬性 function sleep 當物件返序列化時自動呼叫,此時會初始化返序列化後物件中該方法中的屬性 fun...

php序列化與反序列化

php的序列化 反序列化對與一些大檔案的壓縮操作,讀寫操作十分有用。乙個簡單的序列化案例 同時用到了序列化與反序列化函式,二者在被呼叫時會分別自己呼叫對應的函式,sleep 以及 wakeup.sleep和 wakeup練習題 故事 乙個果農生產了很多水果種類,於是需要把乙個買家指定的種類寄給他,生...

php序列化和反序列化

把複雜的資料型別壓縮到乙個字串中 serialize 把變數和它們的值編碼成文字形式 unserialize 恢復原先變數 1.建立乙個 arr陣列用於儲存使用者基本資訊,並在瀏覽器中輸出檢視結果 arr array arr name 張三 arr age 22 arr 男 arr phone 12...