Несколько способов оптимизировать математические выражения для экономии ресурсов процессора:
- Выбирать форму записи выражения так, чтобы количество «медленных» операций было сведено к минимуму. 1 Например, при вычислении многочлена 4-й степени можно заменить 10 умножений на 4 сложения. 1
- Использовать константы. 2 Они работают быстрее переменных при передаче их в качестве аргументов в функции. 2 Всё, что не будет меняться в процессе работы программы, рекомендуется делать константами. 2
- Использовать макро- и встроенные функции. 2 Каждая созданная функция имеет свой адрес в памяти, и для её вызова процессор обращается по этому адресу, что занимает время. 2 Такие критичные ко времени вызовы можно заменить на макро-функции или на встроенные функции. 2
- Избегать конверсий между целыми числами и переменными с плавающей точкой, если это возможно. 3 Для знакового целого такое преобразование занимает 4–16 тактов, для беззнакового медленнее. 3
- Заменять операции целочисленного умножения на степени двойки (2^n) битовым сдвигом. 25 Например, val * 16 выполняется в два раза быстрее, чем val * 12, потому что будет заменена на val << 4. 2
Большинство расчётов компилятор оптимизирует сам, например действия с константами и конкретными цифрами. 2