import timeit from functools import total_ordering @total_ordering class A: def __init__(s, v): s.v = v def __lt__(s, o): return s.v < o.v def bench(stmt): setup = 'from __main__ import A; a = A(1); b = A(2)' number = 100000 best = min(timeit.repeat(stmt, setup, repeat=7, number=number)) / number print('%-6s %.3g' % (stmt, best*1e6)) bench('a < b') bench('b < a') bench('a >= b') bench('b >= a') bench('a <= b') bench('b <= a') bench('a > b') bench('b > a')