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

資訊專(zhuān)欄INFORMATION COLUMN

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

Jinkey / 2888人閱讀

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

今天在看這篇文章的時(shí)候http://jingyan.baidu.com/article/6b97984d7892d21ca2b0bfc2.html發(fā)現(xiàn)第一句是這個(gè)
如果能將類(lèi)的方法定義成static,就盡量定義成static,它的速度會(huì)提升將近4倍。
實(shí)踐是檢驗(yàn)代碼執(zhí)行效率的唯一標(biāo)準(zhǔn),于是趁著下班回家有點(diǎn)時(shí)間,做了個(gè)小測(cè)試:
先上測(cè)試代碼(如果有不對(duì)的地方,請(qǐng)大家指正哈):
測(cè)試環(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í)行一千萬(wàn)次執(zhí)行結(jié)果如下:
/test # php staticTest.php
2.2938342094421
1.1871800422668
第二次執(zhí)行結(jié)果:
2.303295135498
1.1807670593262
執(zhí)行很多次以后,都在2.3和1.18附近。
可見(jiàn),雖然沒(méi)有文章中說(shuō)的效率提升那么恐怖,性能的提升方面確實(shí)提升了一倍左右。
因此還是建議:
如果能將類(lèi)的方法定義成static,就盡量定義成static,它的速度會(huì)提升將近1倍。
對(duì)于一個(gè)正常的php框架,里面的類(lèi)和方法還是非常多的,如果我們能夠做成靜態(tài)方法,還是使用靜態(tài)方法比較好,效率比較高。

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

    thursday 評(píng)論0 收藏0
  • java多線程:synchronized

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

    entner 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<