Wolfgang Maier added the comment: sure, I just happened to have the profiling available since I used it to optimize things. Here's similar microbenchmarks using perf:
STRINGS ======= $ python -m perf timeit -s "from fractions import Fraction" "Fraction('1.23456e-7')" ..................... Median +- std dev: 17.0 us +- 0.3 us $ python -m perf timeit -s "from frc import Fraction" "Fraction('1.23456e-7')" ..................... Median +- std dev: 8.95 us +- 0.16 us $ python -m perf timeit -s "from fractions import Fraction" "Fraction('234/567')" ..................... Median +- std dev: 12.6 us +- 0.1 us $ python -m perf timeit -s "from frc import Fraction" "Fraction('234/567')" ..................... Median +- std dev: 5.45 us +- 0.16 us $ python -m perf timeit -s "from fractions import Fraction" "Fraction('123456')" ..................... Median +- std dev: 12.4 us +- 0.6 us $ python -m perf timeit -s "from frc import Fraction" "Fraction('123456')" ..................... Median +- std dev: 5.77 us +- 0.12 us $ python -m perf timeit -s "from fractions import Fraction; f=Fraction(3/4)" "Fraction(f)" ..................... Median +- std dev: 4.36 us +- 0.06 us $ python -m perf timeit -s "from frc import Fraction; f=Fraction(3/4)" "Fraction(f)" ..................... Median +- std dev: 4.59 us +- 0.07 us $ python -m perf timeit -s "from fractions import Fraction" -s "class myInt(int): pass" -s "i=myInt(123456)" "Fraction(i)" ..................... Median +- std dev: 4.04 us +- 0.07 us $ python -m perf timeit -s "from frc import Fraction" -s "class myInt(int): pass" -s "i=myInt(123456)" "Fraction(i)" ..................... Median +- std dev: 4.27 us +- 0.06 us FLOATS ====== $ python -m perf timeit -s "from fractions import Fraction" "Fraction(1.23456e-7)" ..................... Median +- std dev: 6.30 us +- 0.28 us $ python -m perf timeit -s "from frc import Fraction" "Fraction(1.23456e-7)" ..................... Median +- std dev: 8.64 us +- 0.13 us $ python -m perf timeit -s "from fractions import Fraction" "Fraction.from_float(1.23456e-7)" ..................... Median +- std dev: 8.68 us +- 0.14 us $ python -m perf timeit -s "from frc import Fraction" "Fraction.from_float(1.23456e-7)" ..................... Median +- std dev: 3.37 us +- 0.17 us DECIMALS (using C implementation this time) =========================================== $ python -m perf timeit -s "from fractions import Fraction; from decimal import Decimal; d=Decimal('123456')" "Fraction(d)"..................... Median +- std dev: 6.95 us +- 0.21 us $ python -m perf timeit -s "from frc import Fraction; from decimal import Decimal; d=Decimal('123456')" "Fraction(d)" ..................... Median +- std dev: 8.43 us +- 0.17 us $ python -m perf timeit -s "from fractions import Fraction; from decimal import Decimal; d=Decimal('123456')" "Fraction.from_decimal(d)" ..................... Median +- std dev: 11.6 us +- 0.2 us $ python -m perf timeit -s "from frc import Fraction; from decimal import Decimal; d=Decimal('123456')" "Fraction.from_decimal(d)" ..................... Median +- std dev: 4.14 us +- 0.28 us ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28716> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com