日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 类静态变量 和 常量消耗内存及时间对比

發布時間:2023/12/1 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 类静态变量 和 常量消耗内存及时间对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在對類執行100w次循環后, 常量最快,變量其次,靜態變量消耗時間最高

其中:

常量消耗: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

?

?

?

轉載于:https://www.cnblogs.com/simon-sun/p/3412309.html

總結

以上是生活随笔為你收集整理的php 类静态变量 和 常量消耗内存及时间对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。