我通常在内存中的SQLite3数据库上运行我的测试套件。但是,我有一些项目绝对需要postgres并使用SQLite3引发异常。在这些情况下,我该如何提高速度?
我有一个测试配置,在sqlite中运行2.97s,而在postgres中运行89.71s。我的意思是疯了。
我在postgres中关闭了fsync - 这让我从101.59s到89.71s。
答案 0 :(得分:1)
您的服务器配置肯定会对此速度产生影响,关闭fsync将使表创建更快,这是初始启动成本的重要部分。
另一部分是Django如何处理如果你有大量灯具会严重损害性能的灯具。 Django为每个测试方法(不是每个测试类)加载fixture并回滚事务。有一个第三方应用django-fasttest在加载夹具后使用保存点来优化此加载。 django-nose对重新使用以前创建的数据库和夹具捆绑具有类似的优化。
答案 1 :(得分:0)
您目前的配置是什么?同时查看wiki。
开始记录慢查询以找出真正的问题。