大家好,我对Apc和模板缓存有点困惑。
我的意思是模板缓存有点像智能缓存功能。
基本上,它们之间的区别是什么?
发布于 2011-01-04 10:06:15
APC缓存将php脚本编译成可执行的二进制操作码,并在以后使用它。
简而言之,编译一次,存储到内存中,并可重用,直到生存时间结束,或者直到文件更新。
除了这种主要用途之外,APC还可以用于将运行时变量存储到内存中(您可以将其视为访问同一页面的每个人的全局会话)
虽然从技术上讲,smarty缓存不是二进制操作码缓存,但PHP二进制仍然需要在每次执行时将其转换为二进制操作码。
smarty缓存的好处是它将呈现的HTML/输出存储到磁盘(或者您可以将输出保存到APC中,第二次使用)
这意味着它节省了执行周期,而不是编译周期。
发布于 2011-01-04 11:51:58
ajreal的回答很好。我只需添加以下内容:
Smarty的模板缓存和APC的操作码缓存在不同的级别上是相同的。如果你有一个聪明的模板,并且没有在任何地方进行缓存,下面(大致)是为了执行该模板需要发生的事情:
1)运行(lex,parse,and intepret) smarty模板代码。最终结果是PHP代码。
2)运行PHP代码。这里的输出是php字节码。
3)运行字节码。这里的输出是机器码。(除非有一些我不知道的中间步骤)。
4)运行机器代码。
在smarty中缓存将缓存步骤1的输出。
APC缓存步骤2的输出。
https://stackoverflow.com/questions/4589894
复制相似问题