Я использую g ++ для компиляции кода C ++;программное обеспечение для научного моделирования.
В настоящее время я использую флаги -O3
и -funroll-loops
.Я мог заметить большую разницу между -O0
, -O1
, -O2
и -O3
, и почти нет разницы с -funroll-loops
.
Не могли бы вы дать какие-либо предложения, чтобы помочь мне увеличитьОптимизация или уловки, которые я могу использовать, чтобы получить еще лучшие результаты?
Спасибо!
Редактировать, как предложено в комментариях: я спрашиваю здесь об «чистой» оптимизации компиляции, т.е.Есть ли что-то умное, чем просто -O3
.Интенсивная вычислительная часть кода имеет дело с манипулированием blitz::array
в огромных циклах.
Edit2: я действительно имею дело с большим количеством fp (double) math