Плавающая точка против целочисленной производительности - PullRequest
0 голосов
/ 23 августа 2011

При разработке языка программирования важно различать целые и плавающие числа?В случае R я заметил, что, хотя они допускают строгие целочисленные типы, в основном они имеют дело с numeric типами, которые могут быть числами с плавающей точкой или целыми числами.Есть ли преимущества в производительности?

Редактировать
Мне также интересно узнать больше о том, когда был период времени (если он был), где можно было бы заметить разницувыбирая число с плавающей точкой вместо целого числа.

1 Ответ

4 голосов
/ 23 августа 2011

Если вы говорите о производительности: для большинства целей разницы в производительности нет. Вы, вероятно, все еще можете измерить единицу в чисто кодирующем коде, скомпилированном в машинный код, и в чуть менее математически интенсивном коде на оборудовании, у которого нет выделенного FPU (то есть в основном встроенного). Но для Python (и многих других языков) любое различие в производительности аппаратного обеспечения затмевается (на много много порядков) из-за интерпретации и накладных расходов. Когда число обрабатывается как указатель на 16-байтовые структуры с добавлением, являющимся динамически отправляемым вызовом метода в ответ на интерпретированный код операции, не имеет значения, если фактическая обработка занимает одну наносекунду или сотню.

Семантически, разница между целыми числами и (приближениями) действительных чисел все еще и всегда будет математическим фактом, а не необходимостью, вытекающей из уровня техники компьютерной инженерии. Например, числа с плавающей точкой (обычно неявные преобразования из чисел с плавающей точкой, которые являются целыми числами) будут никогда иметь смысл как индексы.

...