Aly*_*Aly 5 php json zend-framework
你知道什么是性能和内存消耗的最佳方式?
提前致谢.
再见.
功能的唯一区别如下(根据Zend Framework文档):
当一个方法toJson()在要编码的对象上实现时,Zend_Json调用此方法并期望该对象返回其内部状态的JSON表示.
除此之外没有任何差异,如果安装了json扩展,它会自动选择使用PHP的json_encode功能.从他们的文档再次:
如果未安装ext/json,则使用PHP代码中的Zend Framework实现进行解码.这比使用PHP扩展要慢得多,但行为完全相同.
$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;
Run Code Online (Sandbox Code Playgroud)
内部数据大约有130,000条记录(带有结果集)
我明白了
Native php
time 2.24236011505 memory 158072832
Zend
time 3.50552582741 memory 109051904
Run Code Online (Sandbox Code Playgroud)
Zend_Json 的存在是为了让它能够更好地集成到 OO 环境中。至于性能,我认为 json_encode/decode 会更快一点,因为它们是内置函数(意味着它们不是用 PHP 编写的)。
| 归档时间: |
|
| 查看次数: |
6628 次 |
| 最近记录: |