php apc 和模板缓存之间的区别

发布于 2024-10-10 20:11:29 字数 69 浏览 5 评论 0原文

大家好,我对 Apc 和模板缓存有点困惑。
我的意思是模板缓存类似于智能缓存功能。
基本上他们两个有什么区别

Hi guys im a bit confuse with Apc and template caching.
By i mean template caching is something like smarty caching functionality.
Basically what is the difference between both of them

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深海夜未眠 2024-10-17 20:11:29

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

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

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


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

smarty 缓存的好处是它会将渲染的 HTML/输出存储到磁盘中(或者您可以将输出保存到 APC 中,这是第二种用法)

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

APC cache is to compile php script into executable binary op-code and used it later.

In short, compile once, stored into memory, and reusable until time-to-live ended, or until file get updated.

Despite this major usage, APC also can used to store run-time variables into memory (you can treat this as global session for everyone accessing the same page)


While smarty caching technically is not a binary op-code cache, PHP binary still need to convert it to binary op-code every time it get executed.

What benefits of smarty caching as is it will stored the rendered HTML/output into disk (or you can save the output into APC, the second usage)

Which mean, it save the execution cycle instead of compilation cycle

谁的年少不轻狂 2024-10-17 20:11:29

ajreal的答案是一个很好的答案。我将添加以下内容:

Smarty 的模板缓存和 APC 的操作码缓存在不同级别上是相同的。如果您有一个 smarty 模板,并且在任何地方都没有进行缓存,那么(大致)执行该模板需要执行以下操作:

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

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

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

4) 运行机器代码。

smarty 中的缓存会缓存步骤 1 的输出。APC

缓存步骤 2 的输出。

ajreal's answer is a good one. I'll just add the following:

Smarty's template caching, and APC's opcode caching, are the same thing at different levels. If you've got a smarty template, and no caching going on anywhere, here's (roughly) what needs to happen in order to execute the template:

1) Run (lex, parse, and intepret) the smarty template code. The end result is PHP code.

2) Run that PHP code. The output here is php bytecode.

3) Run the Bytecode. The output here is machine code. (unless there's some intermediate step I don't know about).

4) Run the machine code.

Caching in smarty caches the output from step 1.

APC caches the output from step 2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文