php 模块的性能与编译后的性能

php 模块的性能与编译后的性能

我在使用 modx [cms 系统] 和 php 性能时遇到了问题。我想知道这是否与 php 的编译方式有关。使用特定模块编译 php 而不是在运行时加载是否有性能优势。例如,性能问题似乎出现在使用 pdo 的数据库操作期间,缓慢的系统有 -disable-pdo,如果我重新编译它 --with-pdo [顺便说一句,--with-pdo=shared m 是什么意思?

答案1

这实际上不会有什么区别。我假设您没有将 PHP 作为 CGI 运行(FastCGI 是另一种)。静态或动态链接模块的加载时间差异只会影响初始加载时间,并且两者都存在性能权衡。

如果 PHP 启动一次,然后为来自前端服务器(Apache、nginx 等)的多个请求提供服务,那么差异几乎不可能增加。更可能的是,代码本身优化不佳,执行许多不必要的数据库查询,在未编入索引的数据库列上使用查找,执行不必要的循环,一遍又一遍地写入和重写字符串,等等。这个列表真的可以一直列下去。

对代码进行分析和基准测试,并尝试找到可以轻松优化且花费最少精力的东西。添加数据库索引是免费的,通常会使加载时间产生多个数量级的差异。安装操作码缓存(XCache 很棒,APC 和 memcache 也不错)。使用对象缓存(memcache 最适合这种情况,因为它在所有进程之间共享缓存,但 XCache 或 APC 也很好用)。使用 HTML 缓存。等等。

相关内容