[英]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");
...
$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.