TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #179

@pythonotes

Python Заметки

Прегледи1,200Број на прегледи
Објавено9 ное.09.11.2020 г., 09:00
Содржина

Содржина на објавата

Что быстрей по производительности, оператор "%" или битовый оператор "&"? Мы знаем что битовые операторы работают жутко быстро. Но и простые операторы достаточно оптимизированы. Вот мои тесты на разных платформах (и разном железе, так что смотрим только разницу) 🔸 Windows 10 >>> timeit.timeit('for x in range(1000): x%2', number=100000) 3.8916409015655518 >>> timeit.timeit('for x in range(1000): x&1', number=100000) 2.883111000061035 🔸 Windows 7 VMWare >>> timeit.timeit('for x in range(1000): x%2', number=100000) 4.5197880999999995 >>> timeit.timeit('for x in range(1000): x&1', number=100000) 5.360066200000006 🔸 Ubuntu 16 VPS >>> timeit.timeit('for x in range(1000): x%2', number=100000) 2.355823243036866 >>> timeit.timeit('for x in range(1000): x&1', number=100000) 2.754374884068966 🔸 Debian 10 VMWare >>> timeit.timeit('for x in range(1000): x%2', number=100000) 2.979030784990755 >>> timeit.timeit('for x in range(1000): x&1', number=100000) 3.54338647100667 🔸 Raspbian 10 (наRaspberryPI 4с процессором ARM) >>> timeit.timeit('for x in range(1000): x%2', number=10000) 1.1418334439999995 >>> timeit.timeit('for x in range(1000): x&1', number=10000) 1.4677007579999923 Хм, только на Windows 10 оператор & быстрей чем %. Может это связано с тем что это единственный не виртуальный процессор (кроме ARM на малине)? Не хочу ничего утверждать этой информацией, это просто для заметки. Не так много у меня железа чтобы сделать нормальные тесты и не так много времени чтобы выяснить причину такого поведения.