2008-10-04 28 views
3

PHP有许多操作码缓存,据我所知它是处理应用程序缓存方面的脚本。是否有类似的经典ASP,特别是不需要组件安装的东西?是否有经典的ASP的缓存脚本?

关于IIS缓存行为,从阅读here看来,这种行为与某种预编译步骤相关,而非完成页面。请纠正我,如果我错了

回答

2

看看你的评论到目前为止的答案,在你的编辑你的问题你似乎有点困惑缓存。

有两种类型的缓存我们可以谈论。

  • 操作码或模板缓存
  • 输出缓存

操作码或模板缓存是,发生缓存当原始脚本文件,其仅是一个文本文件被转换为在存储器可以由脚本引擎执行的一组操作码。 PHP有一些额外的工具,允许在随后请求脚本文件时重新使用这样一组操作码。同样,ASP在内存和磁盘上保留了“编译”操作码的缓存,这样它就可以为相同脚本的后续请求提供服务,而无需再次通过整个解析过程。

输出缓存是发送到响应缓冲区的脚本的生成输出被缓存,以便后续请求相同的URL(以及可能匹配其他头文件)根本不会重新运行脚本但重新发送以前缓存的输出。


ASP具有输出缓存,而ASP.NET确实没有设施。我对PHP或其普通平台不够熟悉,无法评论这种设施是否可用。

您可以在IIS管理器(IIS6)中配置ASP的“操作码”缓存(它称为模板缓存),打开网站节点上的属性窗口转到主目录选项卡,然后单击配置...然后选择缓存选项标签。默认情况下,500'编译'页面将被缓存在内存中,2000将被缓存在磁盘上。


在我原来的这个答案的版本评论你似乎询问是否PHP通过IIS托管也将从模板缓存中受益。这将取决于如何将PHP添加到平台。

我几乎不知道PHP的任何内容,但我会想象它只是IIS脚本映射将文件与扩展PHP映射到另一个DLL。那样的话,它不会从ASP模板缓存中受益。

以下是大概小说只是试图让这个图片: -

另一个不太方法可行是,如果PHP是一些如何加入ASP脚本语言。在这种情况下,带有PHP扩展名的文件将被映射到ASP.DLL,并且这些文件将包含<%@ language =“PHP”,或者应用程序配置中的默认语言将被设置为PHP。在这个不太可能的设置中,ASP会构建一个可以缓存的模板,但是无论该模板是否包含“已编译”的操作码等,都将由PHP提供。

+0

感谢您的评论。这是一种行为限于asp或IIS是否对任何类型的网页(例如PHP)执行此操作?此外,这个缓存可能是基于每个用户(操作码+会话)?我已经使用了很多IIS,并没有看到op-caching行为的迹象。你有任何链接描述它? – 2008-10-06 20:45:11

2

这取决于你的意思是“缓存”。

在IIS 6.0中有模板缓存,described here(MS Windows 2003的技术中心):

“ASP处理包含ASP脚本的模板或模板文件ASP将这些模板,在模板缓存,然后服务于高速缓存的模板用于随后的客户请求缓存ASP模板增强了性能和可伸缩性,因为每次调用缓存模板时都不会进行编译。

你可以找到其他distinctions of caching here

数据缓存的简单机制,提出在这篇文章中关于Improving ASP Performance With Data Caching

“不幸的是没有内置的缓存系统在传统的ASP,但它很容易通过使用Application对象存储建立一个数据,因此,本文中描述的技术可用于为遗留网站带来有用的性能增强,其中升级数据库或将代码移植到ASP.NET并不是一个可行的选择。“

+0

问题_does_定义缓存的含义,操作码缓存,与ASP所执行的模板缓存等效的内容。 – AnthonyWJones 2008-10-04 16:30:15