Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- >>> import dis
- >>> dis.dis(idiomatic_swap)
- 2 0 LOAD_FAST 0 (a)
- 3 LOAD_FAST 1 (b)
- 6 ROT_TWO
- 7 STORE_FAST 1 (b)
- 10 STORE_FAST 0 (a)
- 13 LOAD_CONST 0 (None)
- 16 RETURN_VALUE
- >>>
- >>>
- >>> def subtraction_swap(a, b):
- ... a = a + b
- ... b = a - b
- ... a = a - b
- ...
- >>>
- >>> def xor_swap(a, b):
- ... a = a ^ b
- ... b = a ^ b
- ... a = a ^ b
- ...
- >>>
- >>> from timeit import Timer
- >>>
- >>> def do_test(n, func_name):
- ... t = Timer('f(1,2)', 'from __main__ import %s as f' % func_name)
- ... print t.timeit(number=n)
- ...
- >>> do_test(1000000, 'idiomatic_swap')
- 0.273808002472
- >>> do_test(1000000, 'subtraction_swap')
- 0.422091960907
- >>> do_test(1000000, 'xor_swap')
- 0.501079797745
- >>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement