在Symfony2中,在捆绑包的扩展文件中,可以调用:
$this->addClassesToCompile([class1, ....])
这会将给定文件添加到缓存文件classes.php =>如果我们在这里放置最常用的类,这可以提高性能,因为PHP进程只需要找到并处理1个文件,而且很多。
但是使用5.6版本的PHP,还有OPcache,它还可以缓存文件并预编译它们。所以我猜Symfony部分不再需要了吗?
答案 0 :(得分:2)
通过使用字节代码缓存,PHP本身将从引导缓存文件中单独缓存这些类。 APC已经使用多年来实现这一目标。 PHP5.5默认包含OPcache来处理opcache。在APC还允许用户自己轻松添加缓存项的情况下,OPcache不适用于用户。
因此,APCu与原始APC库分离,因此传统的用户缓存可用于> PHP5.4。有关Symfony性能的更多信息,请参阅The Book's performance chapter。
回答有关Symfony引导程序的问题:如果同时使用引导程序缓存和字节码缓存,则将文件添加到引导程序将导致更大的字节码缓存文件。如果您的应用程序具有在每个请求中使用的类(如kernel.request
侦听器),则将它们添加到引导程序是有意义的。否则它只会增加开销,并且会略微降低所有其他请求的速度。