大家好,我有点混淆Apc和模板缓存 我的意思是模板缓存就像智能缓存功能 基本上两者之间有什么区别
答案 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的输出。