Влияние производительности использования long vs. int в Python

Мне нужно манипулировать большими числами в Python, которые вписываются в 64 бита. В настоящее время мой код работает на 64-битной платформе, но есть небольшая, но отличная возможность, что он будет работать на 32-битной платформе. Следовательно, я бы предпочел использовать long тип для представления моих чисел. Я понимаю, что есть эффект производительности для использования long over int . Насколько плохо? Я буду выполнять множество делений и умножений на них, но результаты должны также вписаться в 64 бит.

Если вы собираетесь делать много тяжелых хрустов, взгляните на «numpy».

Если ваша программа выполняет множество числовых вычислений – с точки зрения производительности, вы должны ее профилировать и иметь числовую часть, выполняемую в собственном коде. Вы не должны беспокоиться, если внутри цифры являются «целыми» или «длинными» Python – настолько, что Python 3 удаляет разницу типов.

Для этого существует несколько подходов: использование numpy, cython, расширение C, запуск вашей программы с использованием pypy вместо стандартного cpython, и даже взглянуть на corepy – то, что вы не должны делать, – это иметь числовую интенсивную задачу, выполняемую в чистый python, если производительность там является проблемой. Событие, которое он наиболее сложный из них – создание расширения C в виде одной функции, которая просто выполняет вычисления, достаточно проста, чтобы в этом случае стоить выгоды от производительности.