Skip to content

Commit bb1f58f

Browse files
author
Ryan P Kilby
committed
Use repeat() to reduce process interference in results
1 parent 0d9ce7f commit bb1f58f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

tests/test_performance.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import print_function
22

33
import argparse
4-
from timeit import timeit
4+
from timeit import repeat
55

66
from django.test import TestCase, Client, override_settings
77

@@ -34,14 +34,16 @@ def test_sanity(self):
3434
def test_response_time(self):
3535
data = {'author__username': 'bob'}
3636

37-
df_time = timeit(lambda: self.client.get('/df-notes/', data), number=1000)
38-
drf_time = timeit(lambda: self.client.get('/drf-notes/', data), number=1000)
37+
df_time = min(repeat(lambda: self.client.get('/df-notes/', data), number=200, repeat=5))
38+
drf_time = min(repeat(lambda: self.client.get('/drf-notes/', data), number=200, repeat=5))
39+
diff = (drf_time - df_time) / df_time * 100.0
3940

4041
if args.verbosity >= 2:
4142
print('\n' + '-' * 32)
4243
print('Response time performance')
4344
print('django-filter time:\t%.4fs' % df_time)
4445
print('drf-filters time:\t%.4fs' % drf_time)
46+
print('performance diff:\t%+.2f%% ' % diff)
4547
print('-' * 32)
4648

4749
self.assertTrue(drf_time < (df_time * self.threshold))

0 commit comments

Comments
 (0)