gpt4 book ai didi

php - 缓慢的 PHP 单元测试

转载 作者:可可西里 更新时间:2023-11-01 07:04:33 26 4
gpt4 key购买 nike

我正在运行 PHPUnit 以使用 CIUnit(两者之间的第三方接口(interface))测试 CodeIgniter 应用程序。许多测试从一个空的 MySQL 数据库中选择数据,该数据库在 setUp() 中填充了 5-10 条记录。在 Windows 和 Web 服务器(Ubuntu 10.04/Apache 2.2/MySQL 5.1/PHP 5.3)上,105 个测试在 2-3 秒内运行,内存使用量约为 30mb。在我的本地 (Ubuntu 12.04/Apache 2.2/MySQL 5.5/PHP 5.3) 上,105 个测试以相同的内存使用量运行,但大约需要 45 秒。

我已经缩小了使用数据库的测试的缓慢;是否有任何我可能遗漏的配置设置使测试运行速度慢了 15 倍?如果没有,我最好的选择是尝试降级 MySQL,或者甚至是 Ubuntu(我已经尝试过从 12.10 降级到 12.04)?

非常感谢任何答案。

最佳答案

您很可能遇到由 barriers being default on 造成的性能损失在 ext4 文件系统中。在这里阅读更多内容:

这是他们的工作 from the docs :

barrier=<0|1(*)>
the jbd code. barrier=0 disables, barrier=1 enables. This also requires an IO stack which can support barriers, and if jbd gets an error on a barrier write, it will disable again with a warning. Write barriers enforce proper on-disk ordering of journal commits, making volatile disk write caches safe to use, at some performance penalty. If your disks are battery-backed in one way or another, disabling barriers may safely improve performance.

你可以尝试在没有它们的情况下重新挂载你的文件系统(使用 mysql 数据文件所在的挂载点)

mount -o remount,nobarrier /

在我的环境中,这使得 Tests: 83, Assertions: 194 套件的运行时间从 48 秒减少到 6。

关于php - 缓慢的 PHP 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com