Symfony2:用OPcache编译的类

时间:2015-07-27 12:31:33

标签: performance symfony caching compilation opcache

在Symfony2中,在捆绑包的扩展文件中,可以调用:

$this->addClassesToCompile([class1, ....])

这会将给定文件添加到缓存文件classes.php =>如果我们在这里放置最常用的类,这可以提高性能,因为PHP进程只需要找到并处理1个文件,而且很多。

但是使用5.6版本的PHP,还有OPcache,它还可以缓存文件并预编译它们。所以我猜Symfony部分不再需要了吗?

1 个答案:

答案 0 :(得分:2)

通过使用字节代码缓存,PHP本身将从引导缓存文件中单独缓存这些类。 APC已经使用多年来实现这一目标。 PHP5.5默认包含OPcache来处理opcache。在APC还允许用户自己轻松添加缓存项的情况下,OPcache不适用于用户。

因此,APCu与原始APC库分离,因此传统的用户缓存可用于> PHP5.4。有关Symfony性能的更多信息,请参阅The Book's performance chapter

回答有关Symfony引导程序的问题:如果同时使用引导程序缓存和字节码缓存,则将文件添加到引导程序将导致更大的字节码缓存文件。如果您的应用程序具有在每个请求中使用的类(如kernel.request侦听器),则将它们添加到引导程序是有意义的。否则它只会增加开销,并且会略微降低所有其他请求的速度。