我正在运行PHPUnit来使用CIUnit(两者之间的第三方接口)测试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)?
任何答案都非常感谢.
您最有可能遇到ext4文件系统中barriers默认创建的性能损失.在这里阅读更多内容:
以下是他们从文档中做的事情:
barrier = <0 | 1(*)>
jbd代码.barrier = 0禁用,barrier = 1启用.这还需要一个可以支持障碍的IO堆栈,如果jbd在屏障写入时出错,它将再次禁用并发出警告.写入障碍强制执行日志提交的正确磁盘排序,使得易于使用的磁盘写入高速缓存具有一定的性能损失.如果您的磁盘以某种方式备用电池,则禁用屏障可以安全地提高性能.
您可以尝试在没有它们的情况下重新安装文件系统(使用mysql数据文件所在的安装点)
mount -o remount,nobarrier /
Run Code Online (Sandbox Code Playgroud)
在我的环境中,这使得Tests: 83, Assertions: 194套件的运行时间从48秒减少到6秒.
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |