你知道什么是性能和内存消耗的最佳方式?
提前致谢。
再见。
答案 0 :(得分:6)
功能的唯一区别如下(根据Zend Framework文档):
当在要编码的对象上实现方法toJson()时,Zend_Json调用此方法并期望该对象返回其内部状态的JSON表示。
除此之外没有任何差异,如果安装了json扩展,它会自动选择使用PHP的json_encode功能。从他们的文档再次:
如果未安装ext / json,则使用PHP代码中的Zend Framework实现进行解码。这比使用PHP扩展要慢得多,但行为完全相同。
答案 1 :(得分:5)
$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
答案 2 :(得分:4)
Zend_Json就是为了能够更好地集成到OO环境中。至于性能,我认为json_encode / decode会更快一些,因为它们是内置函数的(意味着它们不是用PHP编写的)。