最佳选择是什么? (频繁请求permlink的性能)
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;
欢迎其他替代方法。
答案 0 :(得分:1)
假设你的操作系统有一个I / O缓存,第二种方法很可能会变慢。在内存中移动字符串(这是str_replace
将要执行的操作)可能比命中磁盘要昂贵得多,尤其是当操作系统当前缓存文件时。
但是,您应该在模板/视图系统的基础上保持可维护性和灵活性,而不仅仅是性能。最好在性能方面牺牲一点来生成更易维护的模板。
通常,我看到模板编写为PHP文件 - 一个会设置一些变量,然后include()
模板。然后PHP将执行它们,这为编写视图提供了相当大的灵活性。而且,如果模板文件只是HTML,include()
将与readfile()
具有相同的效果。
答案 1 :(得分:0)
根据定义访问一个文件比访问多个文件更快,只要它们位于同一个驱动器上(但是否则它不是公平的,例如当一个文件在硬盘上而另一个文件时文件在SSD上)。必须查找文件的物理位置,驱动器必须“搜索”它,这将为您包含的每个文件花费更多时间。
但是你在这里谈论微秒,所以我闻到了过早的优化。