php apc和模板缓存之间的差异

时间:2011-01-04 01:20:16

标签: php apc

大家好,我有点混淆Apc和模板缓存 我的意思是模板缓存就像智能缓存功能 基本上两者之间有什么区别

2 个答案:

答案 0 :(得分:1)

APC缓存是将php脚本编译成可执行的二进制操作码并在以后使用它。

简而言之,编译一次,存储到内存中,并可重复使用,直到生存时间结束,或直到文件更新。

尽管有这个主要用法,APC还可以用来将运行时变量存储到内存中(你可以将其视为访问同一页面的每个人的全局会话)


虽然巧妙的缓存在技术上不是二进制操作码缓存,但PHP二进制文件仍然需要在每次执行时将其转换为二进制操作码。

智能缓存的好处是将呈现的HTML /输出存储到磁盘中(或者您可以将输出保存到APC中,第二种用法)

这意味着,它节省了执行周期而不是编译周期

答案 1 :(得分:0)

ajreal的答案很好。我只想添加以下内容:

Smarty的模板缓存和APC的操作码缓存在不同级别上是相同的。如果你有一个聪明的模板,并且在任何地方都没有缓存,那么(大致)执行模板需要发生的事情:

1)运行(lex,parse和intepret)smarty模板代码。最终结果是PHP代码。

2)运行该PHP代码。这里的输出是php字节码。

3)运行字节码。这里的输出是机器代码。 (除非有一些我不知道的中间步骤。)

4)运行机器代码。

在smarty中缓存缓存步骤1的输出。

APC缓存步骤2的输出。