Как код влияет на скорость компиляции?
Всё зависит от общего количества кода, количества зависимостей или сложности кода и использования сложных функций и т.д.?
Например что быстрее скомпилируется:
- куча
if
- один
switch
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Не формальный ответ (так и не пойму, зачем это надо...), но вот что дает Visual C++ 2022 на моей машине для такого странного кода
int n;
cin >> n;
switch(n)
{
case 0 : cout << "0\n"; break;
case 1 : cout << "1\n"; break;
case 2 : cout << "2\n"; break;
case 3 : cout << "3\n"; break;
case 4 : cout << "4\n"; break;
(и так 64000 раз) время компиляции + линковки по 10 запускам компилятора с оптимизацией — 22±2с, без оной 17.7±0.7с.
Те же 64000 раз в виде
int n;
cin >> n;
if (n == 0) { cout << "1\n"; }
if (n == 1) { cout << "1\n"; }
if (n == 2) { cout << "2\n"; }
if (n == 3) { cout << "3\n"; }
if (n == 4) { cout << "4\n"; }
if (n == 5) { cout << "5\n"; }
if (n == 6) { cout << "6\n"; }
(else
не пустил, говорит, переполнение внутренностей компилятора :))
с оптимизацией 17.0±0.9с, без оной 14,7±0.3с
Выводы делайте сами.
Размер exe'шника почти одинаков, 2.5 Мб независимо от оптимизации.