Optimize this: make it 10 times faster Benchmark script:: import os, sys, time null = open(os.devnull, 'wb') stdout = sys.stdout dt = [] for loop in range(10): sys.stdout = null t0 = time.time() for subloop in range(100): import this this=None del sys.modules['this'] dt.append(time.time() - t0) sys.stdout = stdout print("Best: %.1f ms" % (min(dt)*1000,)) Results: * original: 299.8 ms * patched: 23.2 ms diff --git a/Lib/this.py b/Lib/this.py --- a/Lib/this.py +++ b/Lib/this.py @@ -1,4 +1,5 @@ -s = """Gur Mra bs Clguba, ol Gvz Crgref +#coding:rot13 +cevag("""Gur Mra bs Clguba, ol Gvz Crgref Ornhgvshy vf orggre guna htyl. Rkcyvpvg vf orggre guna vzcyvpvg. @@ -18,11 +19,4 @@ Abj vf orggre guna arire. Nygubhtu arire vf bsgra orggre guna *evtug* abj. Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn. Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn. -Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!""" - -d = {} -for c in (65, 97): - for i in range(26): - d[chr(i+c)] = chr((i+13) % 26 + c) - -print "".join([d.get(c, c) for c in s]) +Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!""")