您知道什么是既能保证性能又能节省内存的最佳方法吗?
提前感谢。
再见。
您知道什么是既能保证性能又能节省内存的最佳方法吗?
提前感谢。
再见。
$memoryNativeStart = memory_get_peak_usage (true);
$start = microtime( true );
$native = json_decode(json_encode( $data ));
$memoryNative = memory_get_peak_usage (true) - $memoryNativeStart;
$jsonNativeTime = microtime( true ) - $start;
$msgNative = 'Native php <br>';
$msgNative .= 'time '.$jsonNativeTime.' memory '.$memoryNative.'<br>';
echo $msgNative;
sleep(3);
$memoryZendStart = memory_get_peak_usage (true);
$start = microtime( true );
$zend = Zend_Json::decode(Zend_Json::encode( $data ));
$memoryZend = memory_get_peak_usage (true) - $memoryZendStart;
$jsonZendTime = microtime( true ) - $start;
$msgZend = 'Zend <br>';
$msgZend .= 'time '.$jsonZendTime.' memory '.$memoryZend;
echo $msgZend;
数据内部有大约130,000条记录(带有结果集)
我得到:
Native php
time 2.24236011505 memory 158072832
Zend
time 3.50552582741 memory 109051904
Zend_Json
内部也使用 json_encode
和 json_decode
,只有当您打开 Zend_Json::$useBuiltinEncoderDecoder
时,才能测量实现的非本地性能,而这非常非常糟糕(根据我们的测试,慢了6到8倍)。 - Thomas Keller\0
。我不知道这些是否合法,但是Zend_Json
不会因此而出错,并且可以愉快地对它们进行编码/解码。 - Thomas KellerZend_Json的存在是为了更好地融入面向对象的环境中。至于性能,我认为json_encode/decode会稍微快一些,因为它们是内置函数(意味着它们不是用PHP编写的)。