Skip to content

Instantly share code, notes, and snippets.

969 function calls (936 primitive calls) in 0.002 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
33/1 0.000 0.000 0.002 0.002 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/utils/lru_cache.py:94(wrapper)
1 0.000 0.000 0.002 0.002 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/db/models/options.py:149(get_new_fields)
78 0.000 0.000 0.001 0.000 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/db/models/fields/related.py:121(has_class_relation)
115 0.000 0.000 0.000 0.000 {isinstance}
33 0.000 0.000 0.000 0.000 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/utils/lru_cache.py:26(_make_key)
1 0.000 0.000 0.001 0.001 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/db/models/options.py:536(get_all_related_objects_with_model)
1 0.001 0.001 0.001 0.001 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/db/models/options.py:564(_fill_related_objects_cache)
64 0.000 0.000 0.000 0.000 {isinstance}
139 0.000 0.000 0.000 0.000 {hasattr}
31 0.000 0.000 0.000 0.000 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/db/models/options.py:382(_swapped)
34 0.000 0.000 0.000 0.000 /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/collections.py:54(__setitem__)
2 0.000 0.000 0.000 0.000 /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/collections.py:38(__init__)
1 0.000 0.000 0.000 0.000 /Users/danielpiros/.virtualenvs/djtrunk/django-trunk/django/utils/lru_ca
res = {}
for field, names in self.get_new_fields(types=types, recursive=True).iteritems():
for name in names:
res[name] = field
(djtrunk)danielpiros@monkey:~/.virtualenvs/djtrunk/django-trunk$ djangobench --control master --experiment clean --record /tmp/results query_update
Running benchmarks: query_update
Recording data to '/tmp/results'
Control: Django 1.8.dev20140619125459 (in git branch master)
Experiment: Django 1.8.dev20140701163351 (in git branch clean)
Running 'query_update' benchmark ...
Min: 0.000301 -> 0.000342: 1.1363x slower
Avg: 0.000309 -> 0.000352: 1.1398x slower
Significant (t=-9.439041)
{ "_id" : "default_middleware", "value" : -0.00000232458114605 }
{ "_id" : "form_clean", "value" : -7.390975952099994e-7 }
{ "_id" : "form_create", "value" : 6.675720214999998e-7 }
{ "_id" : "l10n_render", "value" : -0.00004081726074150011 }
{ "_id" : "locale_from_request", "value" : 0.00003746747970565001 }
{ "_id" : "model_creation", "value" : 3.576278685000133e-8 }
{ "_id" : "model_delete", "value" : -0.000007402896881099992 }
{ "_id" : "model_save_existing", "value" : 0.0001587748527550002 }
{ "_id" : "model_save_new", "value" : -0.00020160675047500002 }
{ "_id" : "multi_value_dict", "value" : -0.0000017046928405000068 }
def get_fields(m2m=False, data=True, related_m2m=False, related_obj=False, virtual=False,
include_parents=True, include_proxy=False, include_hidden=False, include_non_concrete=True)
def get_field(field_name, m2m=False, data=True, related_m2m=False, related_obj=False, virtual=False,
include_parents=True, include_proxy=False, include_hidden=False, include_non_concrete=True)
def fields(self):
return self.get_fields()
def concrete_fields(self):

Djangobench, 200 trials. Each test run 10 times

Benchmark name Control (median) Experiment (median) Diff (median)
default_middleware 0.0004441738 0.0004301906 0.0000139832
form_clean 0.0000294924 0.0000271559 0.0000023365
form_create 0.0001099348 0.0001097798 0.0000001550
l10n_render 0.0063491702 0.0062946796 0.0000544906
locale_from_request 0.0008566856 0.0008584261 -0.0000017405
model_creation 0.0002633691 0.0002634645 -0.0000000954
Benchmark Name Control Experiment Diff
default_middleware 0.0004441738 0.0004301906 0.0000139832 (3.15% faster)
form_clean 0.0000294924 0.0000271559 0.0000023365 (7.92% faster)
form_create 0.0001099348 0.0001097798 0.0000001550 (0.14% faster)
l10n_render 0.0063491702 0.0062946796 0.0000544906 (0.86% faster)
locale_from_request 0.0008566856 0.0008584261 -0.0000017405 (0.20% slower)
model_creation 0.0002633691 0.0002634645 -0.0000000954 (0.04% slower)
model_delete 0.0004372716 0.0004410267 -0.0000037551 (0.86% slower)
model_save_existing 0.0140073419 0.0139218569 0.0000854850 (0.61% faster)
Benchmark Name Control Experiment Diff
default_middleware 0.0004342556 0.0004374981 -0.0000032425 (0.75% slower)
form_clean 0.0000271797 0.0000280142 -0.0000008345 (3.07% slower)
form_create 0.0001114607 0.0001127481 -0.0000012875 (1.16% slower)
l10n_render 0.0063365221 0.0063072562 0.0000292659 (0.46% faster)
locale_from_request 0.0008623123 0.0008499742 0.0000123382 (1.43% faster)
model_creation 0.0002710342 0.0002696395 0.0000013947 (0.51% faster)
model_delete 0.0004484415 0.0004542470 -0.0000058055 (1.29% slower)
model_save_existing 0.0142744541 0.0143146038 -0.0000401497 (0.28% slower)
Benchmark Name Control Experiment Diff
default_middleware 0.0004300237 0.0004277825 0.0000022411 (0.52% faster)
form_clean 0.0000273705 0.0000278950 -0.0000005245 (1.92% slower)
form_create 0.0001113892 0.0001106143 0.0000007749 (0.70% faster)
l10n_render 0.0063911915 0.0063764930 0.0000146985 (0.23% faster)
locale_from_request 0.0008582711 0.0008618593 -0.0000035882 (0.42% slower)
model_creation 0.0002637625 0.0002656579 -0.0000018954 (0.72% slower)
model_delete 0.0004505634 0.0004701018 -0.0000195384 (4.34% slower)
model_save_existing 0.0141981959 0.0142557144 -0.0000575185 (0.41% slower)