# On Android 14, Termux app, Python 3.11, Qualcomm Snapdragon 8 gen 2, Samsung Fold 5. # Surprisingly faster than macOS for a mobile, though Android is Linux under the hood, # and these are different Pythons which may vary arbitrarily (3.11 here, 3.12 on macOS). # Also note that this is pure CPU time: disk access may not fare as well on Android, # especially when using shared storage (e.g., /sdcard) throttled in recent Androids. # timer ~/.../LP6E/Chapter21 $ python timer_tests.py Python 3.11.4 on linux forLoop : 0.21047 => [0…9999] listComp : 0.16463 => [0…9999] mapCall : 0.12529 => [0…9999] genExpr : 0.33828 => [0…9999] genFunc : 0.33615 => [0…9999] All results same. ~/.../LP6E/Chapter21 $ python timer_tests2.py Python 3.11.4 on linux forLoop : 0.21849 => [10…10009] listComp : 0.18615 => [10…10009] mapCall : 0.43246 => [10…10009] genExpr : 0.36506 => [10…10009] genFunc : 0.36671 => [10…10009] All results same. ~/.../LP6E/Chapter21 $ python timer_tests3.py Python 3.11.4 on linux forLoop : 0.36459 => [0…9999] listComp : 0.33162 => [0…9999] mapCall : 0.32858 => [0…9999] genExpr : 0.49393 => [0…9999] genFunc : 0.49412 => [0…9999] All results same. # pybench ~/.../LP6E/Chapter21 $ python pybench_tests.py Python 3.11.4 on linux at Jul-01-2024, 09:12:27 0.0380 '[x ** 2 for x in range(1000)]' 0.0402 'res=[]\nfor x in range(1000): res.append(x ** 2)' 0.0650 'list(map(lambda x: x ** 2, range(1000)))' 0.0563 'list(x ** 2 for x in range(1000))' 0.3109 "s = 'hack' * 2500\nx = [s[i] for i in range(10_000)]" 0.5676 "s = '?'\nfor i in range(10_000): s += '?'" ~/.../LP6E/Chapter21 $ python pybench_tests2.py Python 3.11.4 on linux at Jul-01-2024, 09:13:13 0.0488 '{x ** 2 for x in range(1000)}' 0.0673 'set(x ** 2 for x in range(1000))' 0.0556 's=set()\nfor x in range(1000): s.add(x ** 2)' 0.0501 '{x: x ** 2 for x in range(1000)}' 0.0920 'dict((x, x ** 2) for x in range(1000))' 0.0536 'd={}\nfor x in range(1000): d[x] = x ** 2' ~/.../LP6E/Chapter21 $ python pybench_tests3.py Python 3.11.4 on linux at Jul-01-2024, 09:13:46 0.2231 "res=[]\nfor x in 'hack' * 2500: res.append(ord(x))" 0.1834 "[ord(x) for x in 'hack' * 2500]" 0.1428 "list(map(ord, 'hack' * 2500))" 0.3574 "list(ord(x) for x in 'hack' * 2500)"