# -- coding: utf-8 -- import cProfile import pstats left_column_width = 35 loop_range = range(10000000) def test1(): for i in loop_range: x = int(i / 16) def test2(): for i in loop_range: x = divmod(i, 16)[0] def test3(): for i in loop_range: x = i % 16 def test4(): for i in loop_range: x = divmod(i, 16)[1] def test5(): for i in loop_range: a = int(i / 16) b = i % 16 def test6(): for i in loop_range: a, b = divmod(i, 16) def test7(): for i in loop_range: x = divmod(i, 16) a = x[0] b = x[1] test1_profile = cProfile.Profile() test1_profile.runcall(test1) test1_profile.print_stats(sort='cumtime') test2_profile = cProfile.Profile() test2_profile.runcall(test2) test2_profile.print_stats(sort='cumtime') test3_profile = cProfile.Profile() test3_profile.runcall(test3) test3_profile.print_stats(sort='cumtime') test4_profile = cProfile.Profile() test4_profile.runcall(test4) test4_profile.print_stats(sort='cumtime') test5_profile = cProfile.Profile() test5_profile.runcall(test5) test5_profile.print_stats(sort='cumtime') test6_profile = cProfile.Profile() test6_profile.runcall(test6) test6_profile.print_stats(sort='cumtime') test7_profile = cProfile.Profile() test7_profile.runcall(test7) test7_profile.print_stats(sort='cumtime') print('number of loops:'.ljust(left_column_width, ' '), len(loop_range), '\n') print("int /:".ljust(left_column_width, ' '), pstats.Stats(test1_profile).total_tt) print("divmod[0]:".ljust(left_column_width, ' '), pstats.Stats(test2_profile).total_tt, '\n') print("%:".ljust(left_column_width, ' '), pstats.Stats(test3_profile).total_tt) print("divmod[1]:".ljust(left_column_width, ' '), pstats.Stats(test4_profile).total_tt, '\n') print("a = int /, b = %:".ljust(left_column_width, ' '), pstats.Stats(test5_profile).total_tt) print("a, b = divmod:".ljust(left_column_width, ' '), pstats.Stats(test6_profile).total_tt) print("x = divmod, x[0], x[1]:".ljust(left_column_width, ' '), pstats.Stats(test7_profile).total_tt, '\n')