缓存内容、内存与文件系统(PHP和Apache)

缓存内容、内存与文件系统(PHP和Apache),php,apache,caching,apc,Php,Apache,Caching,Apc,我对编程有些陌生,对数据缓存有很多疑问。 比如说,我们有一个静态内容。更快的方法是:将内容保存到php\html文件中并按原样输出页面,或者使用脚本通过apc_fetch()输出内容(假设内容以前保存在内存中)?在第一种情况下,Apache将始终从文件系统读取页面,并且从不在RAM中保存页面,不是吗?当前的APC实现是否与FastCGI配合良好?提前谢谢 我仍然不明白为什么基准测试在使用APC缓存时显示出比使用文件系统快四倍的速度,而Apache可以如此快速地加载静态页面 静态HTML总是最快的

我对编程有些陌生,对数据缓存有很多疑问。 比如说,我们有一个静态内容。更快的方法是:将内容保存到php\html文件中并按原样输出页面,或者使用脚本通过apc_fetch()输出内容(假设内容以前保存在内存中)?在第一种情况下,Apache将始终从文件系统读取页面,并且从不在RAM中保存页面,不是吗?当前的APC实现是否与FastCGI配合良好?提前谢谢


我仍然不明白为什么基准测试在使用APC缓存时显示出比使用文件系统快四倍的速度,而Apache可以如此快速地加载静态页面

静态HTML总是最快的。即使使用操作码缓存,PHP仍然需要加载和运行脚本、进入缓存等。另一方面,Apache的主要目的是尽可能快地提供静态内容,并为此进行了优化。

静态HTML总是最快的。即使使用操作码缓存,PHP仍然需要加载和运行脚本,进入缓存,等等。另一方面,Apache的主要目的是尽可能快地提供静态内容,并为此进行了优化。

与其静态缓存整个页面,不如缓存该页面上的动态部分(数据库调用等)然后使用文件系统或memcache存储这些缓存结果


随着站点的增长,写出静态页面将变得更难维护,如果您更频繁地重建页面,则会增加开销。

与其静态缓存整个页面,不如缓存该页面上的动态部分(数据库调用等)然后使用文件系统或memcache存储这些缓存结果


随着站点的增长,写出静态页面将变得更难维护,如果您更频繁地重新构建页面,则会增加开销。

如果您的Web服务器必须从磁盘中提取所有内容项,那么速度将慢得令人难以置信。所有现代操作系统都实现了复杂的磁盘缓存

将内容保存到php\html文件中并按原样输出页面,或者使用脚本通过apc_fetch()输出内容

访问静态文件(即不是PHP文件)比访问PHP文件、解析PHP然后执行PHP调用apc_fetch()要快得多。至于从PHP生成html页面是否更快,或者使用PHP从APC检索生成的结果是否更快,答案将取决于PHP需要做多少工作

我希望

<?php
 print "hello world";
?>

将比

<?php
 print apc_fetch('hello');
?>

如果您的Web服务器必须从磁盘中获取所有内容项,那么它的速度将非常慢。所有现代操作系统都实现了复杂的磁盘缓存

将内容保存到php\html文件中并按原样输出页面,或者使用脚本通过apc_fetch()输出内容

访问静态文件(即不是PHP文件)比访问PHP文件、解析PHP然后执行PHP调用apc_fetch()要快得多。至于从PHP生成html页面是否更快,或者使用PHP从APC检索生成的结果是否更快,答案将取决于PHP需要做多少工作

我希望

<?php
 print "hello world";
?>

将比

<?php
 print apc_fetch('hello');
?>


我仍然不明白为什么基准测试在使用APC缓存时显示出比使用文件系统快四倍的速度,而Apache可以如此快速地加载静态页面。我假设通过文件系统,他们谈论的是PHP代码本身,或者一些序列化数据。在这些情况下,APC肯定会更快,因为PHP通常会根据每个请求编译代码(或者在操作码缓存的情况下从另一个文件加载操作码)。但是对于直接获取呈现内容来说,静态html每次都应该获胜。我仍然不明白为什么基准测试在使用APC缓存时显示出比使用文件系统快四倍的速度,而Apache可以如此快速地加载静态页面。我假设通过文件系统,他们谈论的是PHP代码本身,或者是一些序列化数据。在这些情况下,APC肯定会更快,因为PHP通常会根据每个请求编译代码(或者在操作码缓存的情况下从另一个文件加载操作码)。但对于直接获取渲染内容来说,静态html每次都应该获胜。