为什么有些框架会变慢?
例如,zend框架如何比代码点火器慢?如果你不使用很多课程,只需选择你需要的课程,那么它应该不会变慢?
你是否被迫在zend框架中使用了很多类,或者他们是否自动预加载了很多类?
答案 0 :(得分:1)
这取决于在编写框架代码时他们处理了多少速度。编写CodeIgniter令人惊讶地总是记住速度。同样大的框架自动加载了许多使框架变慢的螺母和螺栓。但是,如果您对这些框架中的任何一个都很有经验,那么可以通过过滤掉您认为当前项目不需要的内容来加快框架的速度。
答案 1 :(得分:0)
Zend_Loader_Autoloader会在请求时自动加载类,因此没有“不需要的类”。有一些关于如何加速Zend框架驱动的应用程序的教程,即。注释掉“require_once”并使用PluginLoader包含此处解释的文件缓存(以及其他一些方法)http://framework.zend.com/manual/en/performance.html
答案 2 :(得分:0)
有一些你无法击败的事情。
任何框架都可以
但你不可能一下子全部。它不能快速和可扩展。如果它是可扩展的,则必须检查是否要使用内部类或您自己的类。它必须为一切定义接口。因此,它必须加载大量文件(对于类和接口,摘要,......)。请注意加载类MySQLDB
类(单个用途的一个类)和DbLayer_Interface
,DbLayer_Abstract
,DbLayer_MySQL
(完整的基础结构,您可以替换它的任何部分)之间的区别。
同样轻松带来一些魔力。框架为您做的越多,“magic”就越多。魔法可以很快,因为它是为了一个目的而做的,而不必检查你是否想要改变任何东西。
这就是为什么ZF比CI和其他人慢。任何课程都可以替换。例如,我们扩展并注入了自定义Db_Select类,它自动处理多语言列名。您选择SELECT table.name_en FROM table
之类的选项,并且底层逻辑会动态地将其转换为SELECT table.name_en, table.name_fr, table.name_de FROM table
...这就是您在交易中获得的速度;)