[devel] Dramatic g++4.4 speed regression (was: g++4.3 vs g++4.4)

Victor Forsyuk force на altlinux.org
Вт Янв 19 16:59:12 UTC 2010


2010/1/17 Boris Savelev <boris на altlinux.org>:
> У меня есть пакет q4wine (
> http://git.altlinux.org/people/boris/packages/q4wine.git ) и у одного
> файла ( ./src/q4wine-gui/wizard.cpp ) возникает проблема при
> компиляции в hasher c g++4.4.
> Проблема заключается в том что процесс
> /usr/libexec/gcc/i586-alt-linux/4.4.2/cc1plus грузит процессор на 100%
> но при этом ничего полезного не генерит ('as' которому должно лететь
> что-то по pipe от cc1plus висит в ожидании на read() по strace). В
> итоге сборка отваливается по hasher time-out.

Проблема, очевидно, аналогична наблюдаемой при сборке fwbuilder.
Думаю, что и здесь сборка не зависает и, если дать компилятору
достаточно времени, когда нибудь завершится.

> При использовании g++4.3 такой проблемы нет.

Да. Регрессия наступила в одной из сборок g++4.4.

> Не знаю что еще добавить, но вроде такая проблема была не только у меня. Что можете
> посоветовать?

Будем вешать багу на gcc4.4-c++. Тяжелую. Я раздумываю между major и
blocker. Регрессию можно без преувеличения охарактеризовать как
катастрофическую.

Вот так собирался fwbuilder 3.0.7 при помощи нашего gcc4.4-c++-4.4.2
(синхронизированного, кстати, с FedoraCore'вским 4.4.2-20):
8378.43user 64.38system 2:08:21elapsed 109%CPU (0avgtext+0avgdata 0maxresident)k

А вот время сборки gcc4.3-c++-4.3.2:
964.41user 66.88system 9:19.92elapsed 184%CPU (0avgtext+0avgdata 0maxresident)k

Ничего так регрессия в скорости компиляции - на порядок!

Я общался на эту тему с Вадимом Курляндом (автором fwbuilder). У него
на Федоре никаких проблем с компиляцией нет (те же 10 минут на сборку
всей программы). Последняя Fedora на которой он строил - это Fedora
Core 12. Компилятор там
"gcc version 4.4.2 20091027 (Red Hat 4.4.2-7) (GCC)".

Первая неудачная пересборка fwbuilder была, по-видимому, 9 ноября. Во
всяком случае так датирован первый отчет об этом. Обычно такие отчеты
я не удаляю, но даже если вдруг - в любом случае это был компилятор
synced with FC 4.4.2-7.

Поскольку у Вадима на федоровском 4.4.2-7 проблем нет, то
напрашивается вывод, что причина регресии в альтовских патчах...


Подробная информация о списке рассылки Devel