针对django测试套件的Postgres特定性能提示

时间:2012-06-08 16:16:13

标签: django postgresql testing

我通常在内存中的SQLite3数据库上运行我的测试套件。但是,我有一些项目绝对需要postgres并使用SQLite3引发异常。在这些情况下,我该如何提高速度?

我有一个测试配置,在sqlite中运行2.97s,而在postgres中运行89.71s。我的意思是疯了。

我在postgres中关闭了fsync - 这让我从101.59s到89.71s。

2 个答案:

答案 0 :(得分:1)

您的服务器配置肯定会对此速度产生影响,关闭fsync将使表创建更快,这是初始启动成本的重要部分。

另一部分是Django如何处理如果你有大量灯具会严重损害性能的灯具。 Django为每个测试方法(不是每个测试类)加载fixture并回滚事务。有一个第三方应用django-fasttest在加载夹具后使用保存点来优化此加载。 django-nose对重新使用以前创建的数据库和夹具捆绑具有类似的优化。

答案 1 :(得分:0)

您目前的配置是什么?同时查看wiki

开始记录慢查询以找出真正的问题。