#25750: During makemigrations Options._expire_cache takes 30% of the time --------------------------------------+-------------------- Reporter: patrys | Owner: patrys Type: Cleanup/optimization | Status: new Component: Migrations | Version: 1.8 Severity: Normal | Keywords: Triage Stage: Unreviewed | Has patch: 0 Easy pickings: 0 | UI/UX: 0 --------------------------------------+-------------------- Here's the profiler output:
{{{ 215373161 function calls (214826612 primitive calls) in 282.839 seconds Ordered by: internal time List reduced from 6484 to 10 due to restriction <10> ncalls tottime percall cumtime percall filename:lineno(function) 5225318 59.334 0.000 89.667 0.000 django/db/models/options.py:711(_expire_cache) 40538898 27.751 0.000 27.751 0.000 {delattr} 16538241 18.624 0.000 38.450 0.000 django/apps/config.py:164(get_models) 485536 16.907 0.000 27.126 0.000 django/db/models/fields/__init__.py:358(deconstruct) 4466221 12.337 0.000 20.062 0.000 /usr/lib64/python2.7/collections.py:109(values) 79811 10.893 0.000 53.060 0.001 django/apps/registry.py:153(get_models) 73250 10.582 0.000 43.745 0.001 django/db/models/fields/related.py:317(swappable_setting) 495362 8.314 0.000 11.430 0.000 django/db/models/fields/__init__.py:137(__init__) 24359432 7.790 0.000 7.790 0.000 /usr/lib64/python2.7/collections.py:78(__iter__) 15623269/15397100 7.142 0.000 7.330 0.000 {getattr} }}} I have a pull request ready that makes it slightly better: {{{ 164872486 function calls (164325937 primitive calls) in 199.897 seconds Ordered by: internal time List reduced from 6484 to 10 due to restriction <10> ncalls tottime percall cumtime percall filename:lineno(function) 16538241 18.580 0.000 38.545 0.000 django/apps/config.py:164(get_models) 485536 16.290 0.000 26.736 0.000 django/db/models/fields/__init__.py:358(deconstruct) 4466221 12.357 0.000 20.069 0.000 /usr/lib64/python2.7/collections.py:109(values) 79811 10.933 0.000 53.182 0.001 django/apps/registry.py:153(get_models) 73250 10.694 0.000 43.931 0.001 django/db/models/fields/related.py:317(swappable_setting) 5225318 9.295 0.000 9.406 0.000 django/db/models/options.py:711(_expire_cache) 495362 8.807 0.000 11.958 0.000 django/db/models/fields/__init__.py:137(__init__) 24359432 7.777 0.000 7.777 0.000 /usr/lib64/python2.7/collections.py:78(__iter__) 15623269/15397100 7.316 0.000 7.504 0.000 {getattr} 2 4.863 2.431 4.863 2.431 {raw_input} }}} -- Ticket URL: <https://code.djangoproject.com/ticket/25750> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/049.5283580f6d6920d344dbc4ddfa537c8d%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.