Opened 9 years ago
Closed 8 years ago
#25753 closed Cleanup/optimization (fixed)
Cache formats retrieved from django settings in formats.get_format
Reported by: | Jaap Roes | Owned by: | nobody |
---|---|---|---|
Component: | Utilities | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
If L10N is disabled formats.get_format
always goes through Django's settings module to get the requested format type. Accessing settings is fairly expensive, so I propose caching these values in the same way as when L10N is enabled.
import timeit import django from django.conf import settings from django.utils.formats import get_format settings.configure() django.setup() print('%s' % timeit.repeat("get_format('DATETIME_INPUT_FORMATS')", setup='from __main__ import get_format'))
Before:
[4.791080316994339, 4.822412799010635, 4.568255095000495]
After:
[2.801479902002029, 2.874774623007397, 2.796864636009559]
The performance remains the same for when L10N is enabled (e.g. replace settings.configure()
with settings.configure(USE_L10N=True, LANGUAGE_CODE='nl')
)
Change History (7)
comment:1 by , 9 years ago
Description: | modified (diff) |
---|
comment:2 by , 9 years ago
Patch needs improvement: | set |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:3 by , 9 years ago
comment:5 by , 8 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
The patch is now rebased on the current master