Skip to content

Instantly share code, notes, and snippets.

@smithdc1
Last active January 11, 2021 20:46
Show Gist options
  • Save smithdc1/f05610c6c28954e88c345d67e793405c to your computer and use it in GitHub Desktop.
Save smithdc1/f05610c6c28954e88c345d67e793405c to your computer and use it in GitHub Desktop.
Benchmark for merging widget media
import django
from django import forms
from django.conf import settings
from django.forms import Media
settings.configure()
django.setup()
def setup():
widget1 = Media(css={"screen": ["c.css"], "all": ["d.css", "e.css"]})
widget2 = Media(css={"screen": ["a.css"]})
widget3 = Media(css={"screen": ["a.css", "b.css", "c.css"], "all": ["e.css"]})
widget4 = Media(css={"all": ["d.css", "e.css"], "screen": ["c.css"]})
merged = widget1 + widget2
merged = merged + widget3
merged = widget1 + widget4
return merged
def test(merged):
merged._css
if __name__ == "__main__":
import pyperf
runner = pyperf.Runner()
runner.timeit("test merge",
"test(merged)", setup="from __main__ import test, setup; merged = setup()"
)
@smithdc1
Copy link
Author

Before

.....................
test merge: Mean +- std dev: 47.4 us +- 0.3 us

After

.....................
test merge: Mean +- std dev: 41.1 us +- 0.4 us

13% quicker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment