php
2012-06-25 31 views 0 likes 
0

我正在開發一個有點大的PHP應用程序,最終將在兩個網站上使用。我想知道如果將變化的路徑(如域名和服務器路徑)定義爲變量,然後將它們連接到字符串是可以接受的,或者如果這會在數百或數千次的情況下顯着降低性能?應該將路徑存儲在變量中,還是會顯着降低性能?

實施例1:

$string = '<img src="http://www.example.com/image1.jpg">'; 


實施例2:

$string = '<img src="http://www.' . $domainName . '/image1.jpg">'; 

定義的路徑作爲變量將是很好。我可以將它們全部定義在一個名爲「paths.php」的文件中,然後將該文件包含在每個其他文件的頂部,但我不知道這是否會影響我的應用程序的性能。

感謝您的諮詢!

+2

如果這是您整個應用程序中的唯一指令,那麼它可能會產生重大影響。否則,不要。 – mario

+0

您始終可以使用網站相對路徑。你可以放置/ image1,而不是http://www.example.com/image1.jpg。jpg – rdelfin

+0

@ rickyman20:OP提到他需要鏈接不同的域名。 –

回答

2

嚴格地說,連接字符串有一定的開銷,但它可以忽略不計。如果你對RAM/CPU使用情況非常偏執,你應該對你的特定情況進行基準測試,並且自己看看它有什麼不同(例如,使用microtime + memory_get_usage或者xdebug),但是實際上即使使用了,也不會注意到幾千這些。

1

性能略有下降,但非常小。 PHP進程將會一遍又一遍地從RAM中讀取幾個字節;我相信如果不是太麻煩,處理器甚至可能將它保存在三級緩存中。

分配新內存是我意識到的最慢的RAM操作。老實說,我已經看到大型網站的大型查詢和陣列也非常流暢地運行。所以你真的無所事事。

1

我看到你在這裏處理HTML,並將其與傳輸和解釋這些字符串所需的總體速度進行比較,構建HTML所需的時間和內存是微不足道的。

如果你這樣做了數千次或數百萬次,這將開始發揮作用。

可以肯定的是,不要相信任何人告訴你這裏。

相反,只需設置一個簡單的測試,並測量差異。我的預測是,性能增益幾乎不會被察覺,並且您只需要尋找更容易維護的代碼。

0

我敢肯定你沒有什麼可怕的,但正如其他人所說的那樣,使用一些PHP的預定義時間函數來獲得你想要完成的事情的前後結果。

0

正如其他人所說,它並不消耗。不過,使用網站相對路徑可能更容易。換句話說:/image1.jpg而不是http://www.example.com/image1.jpg。無論在哪裏實施和工作都很簡單。

相關問題