php 类静态变量 和 常量消耗内存及时间对比
2013-11-07 13:31
357 查看
在对类执行100w次循环后, 常量最快,变量其次,静态变量消耗时间最高
其中:
常量消耗:101.1739毫秒
变量消耗:2039.7689毫秒
静态变量消耗:4084.8911毫秒
测试代码:
View Code
其中:
常量消耗:101.1739毫秒
变量消耗:2039.7689毫秒
静态变量消耗:4084.8911毫秒
测试代码:
class Timer_profiler { public static $begin_timer; public static $finish_timer; public static $timer_html; /** * 计算时间差 * @return type */ public static function getRecordTimer() { return (self::getFinishTimer() - self::getBeginTimer()) * 1000; } /** * 生成输出HTML * @param type $message * @return type */ public static function recordHtml($message = '') { self::setFinishTimer(); return "<p>{$message}耗时: " . self::getRecordTimer() . " 毫秒</p>"; } /** * 设置开始时间 */ public static function setBeginTimer() { self::$begin_timer = self::getTime(); } /** * 设置结束时间 */ public static function setFinishTimer() { self::$finish_timer = self::getTime(); } /** * 获取开始时间 * @return type */ public static function getBeginTimer() { return self::$begin_timer; } /** * 获取结束时间 * @return type */ public static function getFinishTimer() { return self::$finish_timer; } /** * 获取带微妙的时间戳 * @return type */ private static function getTime() { list($usec, $sec) = explode(" ", microtime()); return (number_format($sec+$usec,6,'.', '')); } } function computeTime($otime,$message){ return; $ntime = xdebug_time_index(); $str = ''; $str .= $message . ($ntime*1000-$otime*1000); $str .= "<br>"; echo $str; } function getMemoryUsed(){ $str = '消耗内存<h3 style="color:red"> '; $str .= round(memory_get_usage()/1024/1024, 4).'MB'; $str .= '</h3>'; echo $str; } $count_i = 100*10000; //$count_i = 100000; Timer_profiler::setBeginTimer(); computeTime(xdebug_time_index(),'开始执行'); echo Timer_profiler::recordHtml('开始执行'); getMemoryUsed(); class TestVar { public $A1 = 'aaaaaaaaaaaaaaaaa'; public $A2 = 'aaaaaaaaaaaaaaaaa'; public $A3 = 'aaaaaaaaaaaaaaaaa'; public $A4 = 'aaaaaaaaaaaaaaaaa'; public $A5 = 'aaaaaaaaaaaaaaaaa'; public $A6 = 'aaaaaaaaaaaaaaaaa'; public $A7 = 'aaaaaaaaaaaaaaaaa'; public $A8 = 'aaaaaaaaaaaaaaaaa'; } $TestVar = new TestVar(); for($i=0;$i<=$count_i;$i++){ $t = $TestVar->A1; $t = $TestVar->A2; $t = $TestVar->A3; $t = $TestVar->A4; $t = $TestVar->A5; $t = $TestVar->A6; $t = $TestVar->A7; $t = $TestVar->A8; } getMemoryUsed(); echo Timer_profiler::recordHtml('变量完成'); computeTime(xdebug_time_index(),'变量完成'); Timer_profiler::setBeginTimer(); class TestStaticVar { static $A1 = 'aaaaaaaaaaaaaaaaa'; static $A2 = 'aaaaaaaaaaaaaaaaa'; static $A3 = 'aaaaaaaaaaaaaaaaa'; static $A4 = 'aaaaaaaaaaaaaaaaa'; static $A5 = 'aaaaaaaaaaaaaaaaa'; static $A6 = 'aaaaaaaaaaaaaaaaa'; static $A7 = 'aaaaaaaaaaaaaaaaa'; static $A8 = 'aaaaaaaaaaaaaaaaa'; } for($i=0;$i<=$count_i;$i++){ $t = TestStaticVar::$A1; $t = TestStaticVar::$A2; $t = TestStaticVar::$A3; $t = TestStaticVar::$A4; $t = TestStaticVar::$A5; $t = TestStaticVar::$A6; $t = TestStaticVar::$A7; $t = TestStaticVar::$A8; } getMemoryUsed(); echo Timer_profiler::recordHtml('静态变量完成'); computeTime(xdebug_time_index(),'静态变量完成'); Timer_profiler::setBeginTimer(); class TestConstVar { const A1 = 'aaaaaaaaaaaaaaaaa'; const A2 = 'aaaaaaaaaaaaaaaaa'; const A3 = 'aaaaaaaaaaaaaaaaa'; const A4 = 'aaaaaaaaaaaaaaaaa'; const A5 = 'aaaaaaaaaaaaaaaaa'; const A6 = 'aaaaaaaaaaaaaaaaa'; const A7 = 'aaaaaaaaaaaaaaaaa'; const A8 = 'aaaaaaaaaaaaaaaaa'; } for($i=0;$i<=$count_i;$i++){ $t = TestConstVar::A1; $t = TestConstVar::A2; $t = TestConstVar::A3; $t = TestConstVar::A4; $t = TestConstVar::A5; $t = TestConstVar::A6; $t = TestConstVar::A7; $t = TestConstVar::A8; } getMemoryUsed(); echo Timer_profiler::recordHtml('常量完成'); computeTime(xdebug_time_index(),'常量完成'); //echo Timer_profiler::recordHtml('共执行'); computeTime(xdebug_time_index(),'共执行'); exit;
View Code
相关文章推荐
- 常量和静态变量会先载入内存后在进行执行php代码
- php查看运行时间、内存消耗
- php查看运行时间、内存消耗
- php 获取代码执行时间和消耗的内存
- php 获取代码执行时间和消耗的内存
- 修改 PHP 消耗内存的方法(Allowed memory size of 8388608 bytes exhausted解决方法)
- PHP接口中的静态变量、常量与类中静态变量、常量的区别
- D3D中数据从显存、内存相互拷贝的时间对比
- PHP常见缓存技术分析 php缓存机制 数据缓存 页面缓存 内存缓存 时间触发缓存 内容触发缓存 静态缓存
- redis之Hash存储与String存储内存消耗对比
- 修改 PHP 消耗内存的方法(Allowed memory size of 8388608 bytes exhausted解决方法)
- PHP内核--静态变量,常量,魔术常量原理
- 程序读写时间内存 硬盘 cache 访问速度数级对比
- JRuby、Rhino、Groovy和Jython性能及内存消耗的简单对比
- java中栈 堆 寄存器 静态变量 和常量内存解析
- 查看php脚本当前的内存消耗情况
- PHP内存消耗
- php使用microtime(true)计算php程序代码执行消耗时间
- 谁动了我的内存:php内存泄露,系统缓存消耗? 转摘:http://blog.csdn.net/tao_627/article/details/9532497
- 内存四域,变量声明和定义,寄存器,c内嵌汇编,auto,堆栈,常量,静态变量