После долгого поиска ошибки производительности я прочитал о значениях денормальной с плавающей запятой.
Очевидно, что денормализованные значения с плавающей запятой могут быть серьезной проблемой с точки зрения производительности, как показано в этом вопросе: Почему изменение 0,1f в 0 замедляет производительность на 10x?
У меня есть Intel Core 2 Duo, и я компилирую с помощью gcc, используя -O2
.
Так что мне делать? Могу ли я как-нибудь научить g++ избежать денормальных значений?
Если нет, могу ли я как-то проверить, является ли float
денормальным?