Я часто вижу код, который преобразует ints в doubles в ints, чтобы удваиваться и снова (иногда по уважительным причинам, иногда нет), и мне просто пришло в голову, что это кажется "скрытой" стоимостью в моей программе. Предположим, что метод преобразования является усечением.
Итак, насколько это дорого? Я уверен, что это зависит от оборудования, поэтому позвольте предположить новый процессор Intel (Haswell, если хотите, хотя я возьму что-нибудь). Некоторые показатели, которые мне интересны (хотя для хорошего ответа не обязательно все):
- из сгенерированных инструкций
- Число используемых циклов
- Относительная стоимость по сравнению с основными арифметическими операциями
Я бы также предположил, что способ, которым мы наиболее остро испытаем влияние медленного преобразования, будет касаться использования энергии, а не скорости выполнения, учитывая разницу в том, сколько вычислений мы можем выполнять каждую секунду относительно того, сколько данных может фактически прибыть в ЦП каждую секунду.