Skip to content

Instantly share code, notes, and snippets.

@rajrao
Created November 3, 2023 17:06
Show Gist options
  • Save rajrao/ec11f7704b8e5c1a92938a1d91286ff9 to your computer and use it in GitHub Desktop.
Save rajrao/ec11f7704b8e5c1a92938a1d91286ff9 to your computer and use it in GitHub Desktop.
import timeit
from pprint import pprint
setup = '''
from string import Template
s = "the quick brown fox JUMPED OVER THE"
t = "LAZY DOG'S BACK 1234567890"
'''
iter = 1
baseline = timeit.timeit("f'{s} {t}'", setup, number=iter)
print("%.10f" % baseline)
time = timeit.timeit("s + ' ' + t", setup, number=iter)
print("%.10f factor: %.2f" % (time, time/baseline))
time = timeit.timeit("' '.join((s, t))", setup, number=iter)
print("%.10f factor: %.2f" % (time, time/baseline))
time = timeit.timeit("'%s %s' % (s, t)", setup, number=iter)
print("%.10f factor: %.2f" % (time, time/baseline))
time = timeit.timeit("'{} {}'.format(s, t)", setup, number=iter)
print("%.10f factor: %.2f" % (time, time/baseline))
time = timeit.timeit("Template('$s $t').substitute(s=s, t=t)", setup, number=iter)
print("%.10f factor: %.2f" % (time, time/baseline))
@rajrao
Copy link
Author

rajrao commented Nov 3, 2023

Iter = 1
0.0000011001
0.0000012000 factor: 1.09
0.0000014000 factor: 1.27
0.0000015001 factor: 1.36
0.0000016000 factor: 1.45
0.0004115000 factor: 374.05

Iter = 10
0.0000032999
0.0000045002 factor: 1.36
0.0000091002 factor: 2.76
0.0000070001 factor: 2.12
0.0000058999 factor: 1.79
0.0005419999 factor: 164.25

iter = 100
0.0000242000
0.0000318000 factor: 1.31
0.0000358000 factor: 1.48
0.0000375998 factor: 1.55
0.0000717000 factor: 2.96
0.0011887001 factor: 49.12

iter = 1000
0.0002390002
0.0003208001 factor: 1.34
0.0003547000 factor: 1.48
0.0003629001 factor: 1.52
0.0004328999 factor: 1.81
0.0076047000 factor: 31.82

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