Когда использовать флаг-O2 для gcc?

Вы можете использовать пакет units для этого.

library(units)
pi_rad <- as_units(pi, "radians")
pi_deg <- set_units(pi_rad, "degrees")
set_units(pi_deg, "radians")
10
задан Igor Oks 22 May 2009 в 21:15
поделиться

6 ответов

Я занимаюсь биоинформатикой, поэтому мой совет может быть необъективным. Тем не менее, я всегда использую переключатель -O3 (то есть для выпускных и тестовых сборок; обычно не для отладки). Правда, у него есть определенные недостатки, а именно увеличение времени компиляции и часто размер исполняемого файла.

Однако первый фактор может быть частично смягчен хорошей стратегией сборки и другими уловками, сокращающими общее время сборки. Кроме того, поскольку большая часть компиляции действительно связана с вводом-выводом, увеличение времени компиляции часто не , как .

Второй недостаток, размер исполняемого файла, часто просто не имеет значения. .

11
ответ дан 3 December 2019 в 13:24
поделиться

Никогда.

Используйте -O3 -Wall -Werror -std = [независимо от того, чему должна следовать ваша база кода]

6
ответ дан 3 December 2019 в 13:24
поделиться

Обычно наша среда сборки настроена так, чтобы мы могли создавать отладочные сборки , которые используют -O0 и сборки выпуска , которые используют -O3 ( build enviroment сохраняет объекты и библиотеки всех конфигураций, чтобы можно было легко переключаться между конфигурациями). Во время разработки в основном создается и запускается конфигурация отладки для более высокой скорости сборки (и более точной отладочной информации), а реже также выполняется сборка и тестирование конфигурации выпуска.

3
ответ дан 3 December 2019 в 13:24
поделиться

Действительно ли заметно увеличенное время компиляции? Я все время использую -O2 по умолчанию, что-то меньшее просто оставляет много "трений" в вашем коде. Также обратите внимание, что уровни оптимизации -O1, -O2, как правило, лучше всего тестируются, поскольку они наиболее интересны. -O0 имеет тенденцию быть более ошибочной, и вы можете довольно хорошо отлаживать в -O2 по моему опыту. Если у вас есть некоторое представление о том, что компилятор может делать с точки зрения переупорядочения кода, встраивания и т. Д.

-Werror -Wall необходим.

2
ответ дан 3 December 2019 в 13:24
поделиться

Всегда, кроме случаев, когда вы программируете и просто хотите проверить то, что вы только что написали.

5
ответ дан 3 December 2019 в 13:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: