php - ZF2模块加载性能

标签 php performance class zend-framework2 autoload

据我所知,ZF2 应用程序中的每个启用模块都会针对每个请求加载(除非使用优化方法,例如 zf2-lazy-loading-module 模块提供的方法)。我一直在关注在 modules.zendframework.org 上发布的模块我遇到过功能极其有限的模块,例如 AkrabatFormatUkTelephone模块,其目的是将电话号码格式化为英国格式。

虽然我理解开发应该专注于创建擅长做一件事的单一用途模块(而不是做很多事情但不是很好的方式的模块),但我在想如果我们开始使用提供这样的模块由于前面提到的功能有限,我们需要组合数百个模块才能构建一个丰富的应用程序,这对性能来说可能是灾难性的。相反,我希望将这种功能放在一个类中(例如 Zend\I18n ?)并按需加载,这样会更加优化。但是知道 Akrabat 的声誉后,我想我一定遗漏了一些东西,因此我的问题是:

与通过 PHP 类加载相同的功能相比,加载我提到的模块的性能是否明显更差(或者由于 ZF2 的设计方式而相似)?是否有人有任何关于模块与类加载性能的数据(即慢 5%、10%、15%)?

最佳答案

不要将此评论作为最终答案,因为希望 ZF2 开发人员的某些人会对此有更多的了解,但通常只有 Module.phpmodule.config .php 将被主动加载。其他一切都将简单地注册并按需调用。因此,只要您的 Module.php 和 module.config.php 的文件大小不是太大,性能应该不是什么大问题

在 Akrabats 示例中,所有发生的事情都是新 ViewHelper 的注册表。没有其他的。与 Zend 内的所有其他 View 助手相同。在这些情况下,性能并不是很重要。

就我个人而言,Skeleton 在我的 Webspace 上加载时间为 80 毫秒,而使用 BjyAuthorize、ZfcBase、ZfcUser 和我自己的模块时,加载时间增加到 100 毫秒。这是没有启用任何类型的内存缓存!

关于php - ZF2模块加载性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919450/

相关文章:

android - 跳过 320 帧在主线程上做的太多

java - 动态加载java类文件的方法

typescript - 如何从 Typescript 中的构造函数动态声明类的实例属性?

javascript - 将 div id 传递到 PHP 变量

php - Zend 框架基数违规 : 1241 Operand should contain 1 column(s)

javascript - 使用javascript函数生成随机字符串

performance - 带有大 UIImageView 的自定义 UITableViewCell 导致滚动延迟

javascript - 在 javascript 中,访问 'window.Math' 比访问没有 'Math' 的 'window.' 对象慢还是快?

python - 缺少 1 个必需的位置参数

php - 让 PEAR 在 XAMPP 上工作(Windows 上的 Apache/MySQL 堆栈)