簡體   English   中英

更好的性能:多個包含或預處理數據?

[英]Better performance: Multiple includes or preprocess data?

最佳選擇是什么? (對頻繁請求進行永久鏈接的性能)

  • 對數據文件的多重訪問(是否有對文件系統的多次訪問?):
readfile("meta-data.html");
readfile("header.html");
readfile("ads.html");
readfile("body-tags.html"); 
readfile("ads2.html");
readfile("profile-target-userA.html"); 
...
  • 使用模板和str_replace預處理頁面的各個部分:
$file = file_get_contents("template.code"); 
$file = str_replace("<!-- meta-data -->", $new_meta_data, $file);
$file = str_replace("<!-- header-->", $new_header, $file);
... 
echo $file;

歡迎其他替代方法。

假設您的操作系統具有I / O緩存,第二種方法可能會變慢。 在內存中移動字符串(這是str_replace要做的事情)比擊中磁盤要昂貴得多,尤其是當文件當前由OS緩存時。

但是,您應該將模板/視圖系統基於可維護性和靈活性,而不僅僅是性能。 最好犧牲一些性能以生成更多可維護的模板。

通常,我會看到模板寫為PHP文件-可以設置一些變量,然后將include()模板。 然后,PHP將執行它們,這為您的視圖編碼提供了很大的靈活性。 而且,如果模板文件確實只是HTML,則include()readfile()具有相同的效果。

根據定義,訪問一個文件比訪問多個文件要快,只要它們位於同一驅動器上即可(但是否則,這將是不公平的,例如,當一個文件位於硬盤上而其他文件位於SSD)。 必須查找文件的物理位置,驅動器必須對其進行“搜索”,這將花費更多時間包含在每個文件中。

但是您在這里說的是微秒,所以我聞到過早的優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM