因为对象缓存实际上是序列化后存储,用的时候反序列化,所以肯定有性能消耗,那么这个时候问题来了,对象创建和反序列化,谁的性能消耗更大?
下面是代码,可以放到控制器内的方法执行。
public function ttt(){
set_time_limit(0);
$i=0;
$count=5000000;
$str='';
$wxObj=new Wechat([]);
$sObj=serialize($wxObj);
$begin=time();
$str.='对象反序列化开始时间:'.$begin.'<br/>';
for($i=0;$i<$count;$i++){
$wxObj=unserialize($sObj);
}
$end=time();
$str.="对象反序列化结束时间:".$end."<br/>";
$str.="用时".($end-$begin)."秒<br/>";
$str.="{$count}次对象创建和反序列化效率测试!<br/>";
$wxObj=null;
$begin=time();
$str.='对象创建开始时间:'.$begin.'<br/>';
for($i=0;$i<$count;$i++){
$wxObj=new Wechat([]);
}
$end=time();
$str.="对象创建结束时间:".$end."<br/>";
$str.="用时".($end-$begin)."秒<br/>";
//return $str;
//return 'fuck';
return $str;
return 'fdsa';
}如上代码的数据如下:对象反序列化开始时间:1463675501
对象反序列化结束时间:1463675551
用时50秒
5000000次对象创建和反序列化效率测试!
对象创建开始时间:1463675551
对象创建结束时间:1463675557
用时6秒
性能差距十分的大……所以想请教下大家,都是如何处理的?
最佳答案