2010-08-10 25 views

回答

3

你有什麼2k行代碼,你必須每頁上運行?根據它在做什麼(處理/數據庫調用/等)它可能會顯着減慢網站,更不用說也使應用程序本身混亂。

如果我正確地理解你,那麼簡單地說是一堆功能?如果是這樣,那麼除非你給他們打電話,否則他們不會跑步,因此不會顯着減慢速度。

0

如果它們只是該文件中的函數,那麼它應該沒有關係。這些函數在你真正使用它們之前是不會被解析的......儘管它們是針對錯誤進行驗證的,所以這可能需要一些時間。

如果到2000行,你的意思是2000行,那麼你不應該擔心太多,但是,是的,它是理想的分離類似的功能到不同的文件,但如果你要包括所有這些文件無論如何,你只是增加了你的開銷與更多的包括電話

0

任何數量的額外的行會減慢某些程度的事情,但通常不足以注意到。 2000行並不是很多 - 對於一個文件來說,它的確很不錯,但是大多數框架都包含了這麼多,而且沒有打眼,而且它們運行良好。

不要擔心它,除非網站實際上很慢 - 並考慮算法改進之前,擔心PHP是否解析太多。

0

它會有一些效果,但它會是非常小的,並且可能不會引起注意。

0

這涉及到你的服務器的磁盤系統有多快,v.s. CPU速度有多快。

磁盤速度將決定這些2000行可以在磁盤上找到的速度有多快,並且會陷入內存並饋入PHP解析器。 CPU速度將決定PHP解析器能夠處理2000行的速度(我忽略了其他因素,例如內存速度,我們只是假裝計算機只是一個帶有磁盤的cpu)。

要肯定地說的唯一方法就是對它進行基準測試。也許一個大文件比你的特定開發服務器上的多個小文件要快得多,但在生產機器上則完全相反。

所以,讓我們假設一些數字。假設文件系統和物理磁盤在0.5秒內定位磁盤上的任何文件,並且每1000行「0.2秒」加載它。那麼讓我們假設PHP的解析器具有完美的性能,並且需要0.1秒來解析1000行,而沒有啓動開銷。當然,這些都是可笑的數字,但它只是爲了說明

所以,隨着您的2000行的文件,我們最終得到:

0.5seconds to locate on disk 
2000/1000 * 0.2 = 0.4 seconds to load 
2000/1000 * 0.1 = 0.2 seconds to parse 
= 1.1 seconds to make your 2000 line file available for use. 
    = 0.5 seconds to locate 
    = 0.6 seconds to load/parse 

現在讓我們假設你已經rejigged東西和文件分割成更小塊。你開始大量使用一個特定的腳本,這需要加載3個較小的腳本。讓我們假裝每個小塊都是500行。所以。

0.5 seconds * 3 files = 1.5 seconds to locate on disk 
500/1000 * 0.2 * 3 = 0.3 seconds to load 
500/1000 * 0.1 * 3 = 0.15 seconds to load 
= 1.85 seconds, much slower than the single bigger file. 
    = 1.5 seconds to locate 
    = 0.45 seconds to load/parse 

所以,這個人爲的例子,你已經0.15秒(減少25%),減少您的加載/解析開銷,但你兩倍的磁盤時間。

所以,再說一次,說出在你的情況下最好的工作的唯一方法就是對它進行基準測試。使用單個大型單片文件運行一系列加載,而不是一系列具有多個較小碎片的加載。

相關問題