最佳选择是什么?(频繁请求的性能permlink)
- 对数据文件的多重访问(对文件系统的多次访问是一个问题?):
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
将要做的)可能比访问磁盘要昂贵得多,特别是当文件当前由操作系统缓存时。
然而,你应该基于你的模板/视图系统的可维护性和灵活性,而不仅仅是性能。最好在性能方面做出一点牺牲,以生成更易于维护的模板。
通常,我看到模板写成PHP文件——一个人会设置几个变量,然后include()
模板。然后PHP将执行它们,这使您在编写视图时具有相当大的灵活性。并且,如果模板文件真的只是HTML, include()
将具有与readfile()
相同的效果。
根据定义,访问一个文件比访问多个文件要快,只要它们在同一个驱动器上(但否则就不公平了,例如,当一个文件在硬盘上而其他文件在SSD上)。必须查找文件的物理位置,驱动器必须"搜索"它,这将花费更多的时间为您包含的每个文件。
但是你说的是微秒,所以我闻到了过早的优化。