【发布时间】:2010-09-15 06:56:19
【问题描述】:
PHP 有许多操作码缓存,据我了解,它们是处理应用程序缓存方面的脚本。经典asp有没有类似的东西,尤其是不需要安装组件的东西?
关于 IIS 缓存行为,从阅读 here 看来,该行为与某种预编译步骤相关,而不是与完成的页面相关。如果我错了,请纠正我
【问题讨论】:
标签: performance caching asp-classic
PHP 有许多操作码缓存,据我了解,它们是处理应用程序缓存方面的脚本。经典asp有没有类似的东西,尤其是不需要安装组件的东西?
关于 IIS 缓存行为,从阅读 here 看来,该行为与某种预编译步骤相关,而不是与完成的页面相关。如果我错了,请纠正我
【问题讨论】:
标签: performance caching asp-classic
到目前为止,查看您对此处答案的 cmets 以及您对问题的编辑,您似乎对缓存感到有些困惑。
我们可以讨论两种类型的缓存。
操作码或模板缓存是在将纯文本文件的原始脚本文件转换为可由脚本引擎执行的内存操作码集时发生的缓存。 PHP 有一些额外的工具允许在随后请求脚本文件时重复使用这样的一组操作码。同样,ASP 在内存和磁盘上保留一个“已编译”操作码的缓存,以便它可以为同一脚本的后续请求提供服务,而无需再次执行整个解析过程。
输出缓存是发送到响应缓冲区的脚本的生成输出被缓存的地方,这样后续对相同 URL(以及可能匹配其他标头)的请求就不会重新运行除了重新发送以前缓存的输出之外的脚本。
ASP 没有输出缓存功能,而 ASP.NET 有。我对 PHP 或其正常平台不够熟悉,无法评论是否可以使用这样的工具。
您可以在 IIS 管理器 (IIS6) 中配置 ASP 的“操作码”缓存(称为模板缓存) 打开网站节点上的属性窗口 转到主目录选项卡并单击配置...然后选择缓存选项选项卡.默认情况下,500 个“编译”页面将缓存在内存中,2000 个将缓存在磁盘上。
在对此答案的原始版本的评论中,您似乎在询问由 IIS 托管的 PHP 是否也会从模板缓存中受益。这将取决于如何将 PHP 添加到平台中。
我对 PHP 几乎一无所知,但我想它只是另一个 dll,IIS 脚本映射将扩展名为 PHP 的文件映射到。在这种情况下,它不会从 ASP 模板缓存中受益。
以下内容可能是虚构的,但只是为了完善画面:-
另一个不太可能的可能性是,如果 PHP 被添加为 ASP 脚本语言。在这种情况下,具有 PHP 扩展名的文件将被映射到 ASP.DLL,并且文件将包含
【讨论】:
这取决于您所说的“缓存”。
在 IIS 6.0 中有模板缓存,described here(MS Windows 2003 TechCenter):
“ASP 处理包含 ASP 脚本的模板或模板文件。ASP 将这些模板存储在模板缓存中,然后为后续的客户端请求提供缓存的模板。缓存 ASP 模板可以提高性能和可伸缩性,因为缓存的模板是每次调用时都不会编译。”
你可以找到其他distinctions of caching here。
关于Improving ASP Performance With Data Caching的这篇文章介绍了一种简单的数据缓存机制:
“很遗憾,经典 ASP 中没有内置缓存系统,但是通过使用 Application 对象来存储数据很容易构建。因此,可以使用本文中描述的技术来带来有用的性能对升级数据库或将代码移植到 ASP.NET 不可行的旧网站的增强功能。"
【讨论】:
也许这个类可以帮助你缓存一些东西。
http://www.webdevbros.net/2006/11/18/cache-object-for-classic-asp/
它不需要任何已安装的组件,并使用应用程序对象作为存储。因此,所有访问者都使用相同的缓存。您可以将其用于以下场景,例如:缓存繁重的 SQL 查询,...
【讨论】: