Экспериментируя с некоторым кодом и выполняя некоторые микрообъекты, я узнал, что использование функции float
в строке, содержащей целое число, является фактором 2 быстрее, чем использование int
в той же строке.
>>> python -m timeit int('1')
1000000 loops, best of 3: 0.548 usec per loop
>>> python -m timeit float('1')
1000000 loops, best of 3: 0.273 usec per loop
При тестировании int(float('1'))
он становится еще более странным, а время выполнения меньше голого int('1')
.
>>> python -m timeit int(float('1'))
1000000 loops, best of 3: 0.457 usec per loop
Я протестировал код под Windows 7 с помощью cPython 2.7.6 и Linux Mint 16 с помощью cPython 2.7.6.
Мне нужно добавить, что затронуто только Python 2, Python 3 показывает путь меньшей (не замечательной) разницы между временем выполнения.
Я знаю, что информация, которую я получаю с помощью таких микрообъектов, легко использовать, но мне любопытно, почему существует такая разница во времени выполнения функций.
Я попытался найти реализации int
и float
, но я не могу найти его в источниках.