Если вы работаете на 64-битном процессоре и скомпилировали свой код для 64-битной системы, то, по крайней мере, в некоторых случаях long
может быть более эффективным, поскольку он соответствует размеру регистра.Но будет ли что действительно повлиять на вашу программу намного спорно.Кроме того, если вы используете long
повсеместно, вы, как правило, будете использовать больше памяти - как в стеке, так и в куче - что может негативно повлиять на производительность.Слишком много переменных, чтобы точно знать, насколько хорошо ваша программа будет работать, используя long
по умолчанию вместо int
.Есть причины, почему это может быть быстрее, и причины, почему это может быть медленнее.Это может быть полная стирка.
Обычная вещь, которую нужно сделать, это просто использовать int
, если вас не волнует размер целого числа.Если вам нужно 64-разрядное целое число, тогда вы используете long
.Если вы пытаетесь использовать меньше памяти, а int
- это гораздо больше, чем нужно, тогда вы используете byte
или short
.
x86_64. ЦП будут рассчитаны на эффективную обработку 32.-битные программы, поэтому использование int
не приведет к серьезному снижению производительности.Некоторые вещи будут быстрее из-за лучшего выравнивания при использовании 64-битных целых чисел на 64-битном процессоре, но другие будут медленнее из-за повышенных требований к памяти.И, вероятно, существует множество других факторов, которые могут определенно повлиять на производительность в любом направлении.
Если вы действительно хотите знать, что будет лучше для вашего конкретного приложения в вашей конкретной среде, вы собираетесьнужно профилировать его.Это не тот случай, когда есть явное преимущество одного над другим.
Лично я бы посоветовал вам следовать типичному маршруту использования int
, когда вас не волнует размерцелое число и использовать другие типы, когда вы делаете.