Running Django's own testsuite: #./runtests.py --settings=test_sqlite --verbosity=0 and then alternating between trunk and patched version Switched to branch 'master' Ran 4218 tests in 590.286s Switched to branch 'add_q_further' Ran 4218 tests in 541.701s Switched to branch 'master' Ran 4218 tests in 583.265s Switched to branch 'add_q_further' Ran 4218 tests in 562.066s Switched to branch 'master' Ran 4218 tests in 644.779s Switched to branch 'add_q_further' Ran 4218 tests in 530.566s Switched to branch 'master' Ran 4218 tests in 592.954s Switched to branch 'add_q_further' Ran 4218 tests in 539.268s Master Total: 2409 Where Refactor: 2172 Speedup about 10% A couple of test with postgresql and the following model: class User(models.Model): email = models.TextField() The test file is as follows, you need to do some application setup: import settings from django.core.management import setup_environ setup_environ(settings) from test_models.models import User from datetime import datetime from django.db import transaction User.objects.create(pk=1, email='foo@bar.com') #Test 1 start = datetime.now() for i in range(0, 1000): User.objects.filter(pk=1) print datetime.now() - start #Test 2 qs = User.objects.all() start = datetime.now() for i in range(0, 200): qs = qs.filter(pk=i) print datetime.now() - start # Test3 qs = User.objects.all() @transaction.commit_on_success def managed(): start = datetime.now() for i in range(0, 1000): obj = User.objects.get(pk=1) obj.save() print datetime.now() - start managed()