国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php中靜態(tài)方法static和非靜態(tài)方法效率對比

Jinkey / 2881人閱讀

摘要:可見,雖然沒有文章中說的效率提升那么恐怖,性能的提升方面確實提升了一倍左右。對于一個正常的框架,里面的類和方法還是非常多的,如果我們能夠做成靜態(tài)方法,還是使用靜態(tài)方法比較好,效率比較高。

今天在看這篇文章的時候http://jingyan.baidu.com/article/6b97984d7892d21ca2b0bfc2.html發(fā)現(xiàn)第一句是這個
如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。
實踐是檢驗代碼執(zhí)行效率的唯一標(biāo)準(zhǔn),于是趁著下班回家有點時間,做了個小測試:
先上測試代碼(如果有不對的地方,請大家指正哈):
測試環(huán)境:
/test # php -v
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

/test # uname -a
Darwin 192.168.0.101 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64

系統(tǒng)配置可以看這篇文章中的:http://blog.csdn.net/lamp_water/article/details/20968155
class staticTest {
public function test() {
$i = 0;
$i++;
}

public static function testStatic() {
    $i = 0;
    $i++;
}   

}

$start = microtime(true);
for($i=0;$i<10000000;$i++) {
$test = new staticTest();
$test->test();
}
echo (microtime(true) - $start) ." ";

$start = microtime(true);
for($i=0;$i<10000000;$i++) {
staticTest::testStatic();
}
echo microtime(true) - $start;

循環(huán)執(zhí)行一千萬次執(zhí)行結(jié)果如下:
/test # php staticTest.php
2.2938342094421
1.1871800422668
第二次執(zhí)行結(jié)果:
2.303295135498
1.1807670593262
執(zhí)行很多次以后,都在2.3和1.18附近。
可見,雖然沒有文章中說的效率提升那么恐怖,性能的提升方面確實提升了一倍左右。
因此還是建議:
如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近1倍。
對于一個正常的php框架,里面的類和方法還是非常多的,如果我們能夠做成靜態(tài)方法,還是使用靜態(tài)方法比較好,效率比較高。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/20728.html

相關(guān)文章

  • PHP的self關(guān)鍵字

    摘要:有了的靜態(tài)延遲綁定功能,可以在運行時動態(tài)確定歸屬的類。與是被討論最多,也是最容易引起誤用的組合。的用途看完與上述三個關(guān)鍵字的區(qū)別,的用途是不是呼之即出一句話總結(jié),那就是總是指向當(dāng)前類及類實例。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/self-in-php/ PHP群里有人詢問self關(guān)鍵字的用法,答案是比較明顯的:靜態(tài)成員函數(shù)內(nèi)不能用this調(diào)用非成員函數(shù),但可以用...

    morgan 評論0 收藏0
  • php性能怎么優(yōu)化?php性能優(yōu)化及安全策略

    摘要:性能問題一般不會超過占整個項目性能的,一般在。內(nèi)置函數(shù)的性能優(yōu)劣。幾乎與在函數(shù)中調(diào)用局部變量的速度相當(dāng)。遞增一個全局變量要比遞增一個局部變量慢倍。類似的方法調(diào)用所花費的時間接近于次的局部變量遞增操作。 php性能怎么優(yōu)化?性能是網(wǎng)站運行是否良好的關(guān)鍵因素, 網(wǎng)站的性能與效率影響著公司的運營成本及長遠發(fā)展,編寫出高質(zhì)高效的代碼是我們每個開發(fā)人員必備的素質(zhì),也是我們良好...

    番茄西紅柿 評論0 收藏2637
  • Java 重入鎖 ReentrantLock 原理分析

    摘要:的主要功能和關(guān)鍵字一致,均是用于多線程的同步。而僅支持通過查詢當(dāng)前線程是否持有鎖。由于和使用的是同一把可重入鎖,所以線程可以進入方法,并再次獲得鎖,而不會被阻塞住。公平與非公平公平與非公平指的是線程獲取鎖的方式。 1.簡介 可重入鎖ReentrantLock自 JDK 1.5 被引入,功能上與synchronized關(guān)鍵字類似。所謂的可重入是指,線程可對同一把鎖進行重復(fù)加鎖,而不會被阻...

    lx1036 評論0 收藏0
  • PHPstatic與yield關(guān)鍵字的思考

    摘要:先來說說關(guān)鍵字。什么時候用來修飾方法關(guān)鍵字大家都知道是用來修飾方法與屬性的。一句話學(xué)會面向?qū)ο蟮姆绞絹硭伎肌3浞职l(fā)揮其性能優(yōu)勢,又能解決擴展性差的問題。這里不會進行與的比較。 你以為你知道了一切,只是你以為而已。知識的美妙就在于,一生的時光在它面前顯得多么的短暫。 嗯嗯,扯遠了,我今天只想說說:static 與 yield。 先來說說 static 關(guān)鍵字。本篇只講靜態(tài)方法的使用與后期...

    thursday 評論0 收藏0
  • java多線程:synchronized

    摘要:非靜態(tài)方法以及方法內(nèi)部的代碼塊持有的是同一個對象鎖,它們是同步執(zhí)行的。可重入鎖使用時,當(dāng)一個線程請求一個對象鎖時,再次請求該鎖是可以立即得到的。出現(xiàn)異常,會自動釋放鎖同步方法與同步代碼塊作用于整個方法,可能引起方法執(zhí)行效率下降。 synchronize可以在多個線程操作同一個成員變量或者方法時,實現(xiàn)同步(或者互斥)的效果。synchronized可以作用于方法,以及方法內(nèi)部的代碼塊。 ...

    entner 評論0 收藏0

發(fā)表評論

0條評論

Jinkey

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<