Есть ли способ оптимизировать скомпилированный код GCC в терминах процессора и памяти с использованием флажков параметров? Использование O3 вместо 01 увеличивает или уменьшает объем памяти или процессора?Оптимизация GCC для использования CPU и MEMORY
ответ
Вы можете попробовать -Os
, который похож на -O2
(хорошая скорость процессора), одновременно пытаясь уменьшить двоичный размер.
Ознакомьтесь с различными оптимизациями here.
об использовании памяти:
-Os
уменьшает размер бинарного кода программы. Он имеет ограниченный эффект при использовании памяти во время работы (выделение и освобождение памяти C/C++ «вручную»).Я говорю, что ограничение с tail recursion optimization может снизить использование стека (эта оптимизация будет также выполняться с
-O2
/-O3
).Опция
-flto
(link time optimization) также может уменьшить двоичный размер.
использование CPU:
Высоко оптимизированный код (например
-O3
) подчеркнут процессор, но это не означает автоматически более высокое энергопотребление общего процессора (это может привести к минимальному времени выполнения) ,E.g. в Compiler-Based Optimizations Impact on Embedded Software Power Consumption (а не только GCC, но интересно), они обнаруживают, что включение различных глобальных оптимизаторов компилятора приводит к значительному увеличению энергопотребления DSP (в среднем на 25%). Хотя эти оптимизации увеличивают потребляемую мощность с помощью DSP, потребление энергии при работе алгоритма уменьшилось в среднем на 95%.
Оптимизация профиля при управлении может снизить потребление ЦП (The risks of using PGO (profile-guided optimization) with production environment).
- Посмотрите на Can we optimize code to reduce power consumption?
Вероятно, вы должны использовать -O2
и не беспокоиться об этом: если вы хотите, чтобы сохранить мощность/память, общий дизайн вашего приложения будет иметь больший эффект, чем компилятор.
Есть ли предыдущая работа, которая изучает влияние оптимизации компилятора на% CPU и Memory? Ссылка, которую вы мне дали, интересна, но я пытаюсь найти некоторые работы, связанные с mem и cpu. спасибо – staticx
Оптимизация размера кода рассматривается выше.
Я только смотрю на оптимизацию процессора. Вы можете написать действительно хороший/оптимизированный код, который имеет низкое использование процессора и действительно плохой/неоптимизированный код, который максимизирует использование ЦП.
Итак, как вы наиболее эффективно используете свой процессор?
- Во-первых, используйте хороший оптимизирующий компилятор. Я не буду говорить с GCC, но Intel и некоторые другие приобретенные компиляторы (например, PGI) очень хороши в оптимизации.
- Используйте базовые аппаратные средства, такие как векторные инструкции, FMA, регистры и т. Д.
- Следуйте рекомендациям по использованию периферийных устройств, таких как сотовая связь, Wi-Fi, gps и т. Д.
- Следуя рекомендациям по разработке SW, например, скрытию скрытых данных, избегайте опроса с использованием прерываний, при необходимости используйте пул потоков и т. Д.
Удачи.
- 1. Node.js выпуск CPU/Оптимизация
- 2. Оптимизация GCC?
- 3. Оптимизация malloc и gcc 2
- 4. Оптимизация при построении GCC
- 5. avr-gcc деструктивная оптимизация
- 6. Оптимизация в GCC
- 7. Оптимизация стека gcc?
- 8. Как оптимизировать компиляцию GCC для использования памяти?
- 9. gcc оптимизация составной команды
- 10. GCC 4.7.2 Оптимизация Проблема
- 11. Неправильная оптимизация компилятора GCC
- 12. Оптимизация для векторного использования Оптимизация R
- 13. рецепт autoconf для использования gcc-ar и gcc-ranlib
- 14. Оптимизация и отладчик компилятора GNU GCC
- 15. Оптимизация с плавающей запятой GCC для компиляции
- 16. Юридические использования setjmp и GCC
- 17. Multiprocessing - Предел использования CPU
- 18. О функции использования CPU
- 19. Оптимизация использования памяти для Resque
- 20. мониторинг использования java cpu
- 21. OperatingSystemMXBean методы использования CPU
- 22. Инструмент/Plug-in для использования CPU и Ram для JQuery
- 23. Оптимизация компилятора OpenMP vs gcc
- 24. GCC C, если оптимизация оператор
- 25. Современные CPU Внутренних петли Косвенности Оптимизация
- 26. GCC Оптимизация: ошибка, вызванная fgets
- 27. Как определить идентификатор CPU в gcc
- 28. Увеличение использования CPU на C++
- 29. java: cpu 100% использования. какие оптимизационные трюки можно сделать?
- 30. SoftLayer несоответствие использования API CPU
обычно оптимизированный код потребляет больше процессора (за меньшее время). вы имеете в виду оптимизацию размера исполняемого файла? это единственная оптимизация с точки зрения потребления памяти, которую компилятор делает для вас. – BeyelerStudios
Вам удастся уменьшить размер вашего кода, написав его в более «экономном» стиле. Существует только столько, что может сделать компилятор для его оптимизации, но это противоречит ограничениям того, что вы написали для кода. – wallyk