Отправляет email-рассылки с помощью сервиса Sendsay

gcc при сборке программ съедает очень много памяти

Здравствуйте!

Собственно, сабж. Как замечено в списке процессов, память жрет вот
это: /usr/libexec/gcc/i386-redhat-linux/4.0.2/cc1plus. Временами доходит до
300-450 Мб (из имеющихся 512); не раз уже мне приходилось, потеряв терпение,

перезагружать компьютер.
Странно, что это проявляется только при обычной сборке тарбола с исходниками,

при сборке SRPM-пакета памяти есть тоже немерянно, но в рамках, до зависаний

еще ни разу не доходило.
Проявлялось и проявляется на: FC3/Fc4 (насчет FC2 не помню), gcc-3.4, 4.0 и

сейчас на 4.0.2.
В чем может быть дело?

Спасибо за ответы-советы.

Ответить   Wed, 1 Feb 2006 19:54:02 +1000 (#508997)

 

Ответы:

1 февраля 2006 12:54 | 9A4172:

Что собираем?
echo $CFLAGS
echo $CXXFLAGS

Плюс, вообще говоря, ничего дико страшного в этом нет, GCC действительно
может кушать очень много памяти в зависимости от исходников и флагов,
подождите пока все скомпилируется и все будет тип-топ, зачем перезагружать
компьютер?

Ответить   Roman I Khimov Wed, 1 Feb 2006 13:45:15 +0300 (#509040)

 

В сообщении от Среда 1 Февраль 2006 20:45 Roman I Khimov написал(a):

Собираем всякое разное, закономерности не уловил, хотя при сборке больших
тяжелых программ такое бывает чаще.

Флаги разные: от -O2 -march=i686 до -O3 -march=athlon -mmmx -m3dnow
-funroll-loops -fomit-frame-pointer -pipe -fPIC -fvisibility=hidden
-fvisibility-inline-hidden (честно скопировано с какого-то форума :) ).

Вам не страшно, а мне тяжелые программы (типа KDE) приходится из голой
консоли собирать :)

Ответить   Wed, 1 Feb 2006 23:29:33 +1000 (#509118)

 

1 февраля 2006 16:29 | 9A4172:

Что неудивительно.

Ну, это еще не так жестко. :)

Ну так и ничего страшного! :) Чуть побольше терпения и все будет в порядке.
Пускай он кушает память сколько ему надо - скомпилировать-то хочется или
как? :)

Ответить   Roman I Khimov Wed, 1 Feb 2006 17:03:58 +0300 (#509155)

 

В сообщении от Четверг 2 Февраль 2006 00:03 Roman I Khimov написал(a):

А можно пример еще более жестоких флагов? Попробую - а вдруг что-нибудь
соберется :) У меня Duron.

А то! Конечно, хочется; вот и терплю: vim, elinks, mpfc (консольные почтовики

не смог выдержать; надо бы еще centericq настроить) :)

Ответить   Thu, 2 Feb 2006 00:32:25 +1000 (#509165)

 

1 февраля 2006 17:32 | 9A4172:

Лучше не буду, иначе это будет из разряда "вредных советов". Если
действительно хотите попробовать всякое, то лучше делать это осознанно, а
для этого стоит почитать хотя бы `info gcc`. И при этом постоянно надо
помнить о том, что чем больше вы будете играться с компилятором, тем менее
стабильна будет ваша система - в компиляторах ошибки тоже пачками бывают...

Ответить   Roman I Khimov Sun, 5 Feb 2006 14:50:58 +0300 (#511218)

 

Во перых хотелось бы заметить если вам нужно собирать из исходников
поставьте Gentoo там и с флагами оптимизации легко и т.д. в общем
emerge рулит, если не хотите то ставьте rpm дистрибутив и не
компострируйте себе мозги потому как все проблемы которые вы
описываете ерундовые, если считаете что это не так проверьте свое
железо на вшивость, или сделайте апгрейд.
:)))

Ответить   Thu, 9 Feb 2006 00:47:09 +0700 (#512579)

 

1 февраля 2006 12:54 | 9A4172:

Что собираем?
echo $CFLAGS
echo $CXXFLAGS

Плюс, вообще говоря, ничего дико страшного в этом нет, GCC действительно
может кушать очень много памяти в зависимости от исходников и флагов,
подождите пока все скомпилируется и все будет тип-топ, зачем перезагружать
компьютер?

Ответить   Roman I Khimov Wed, 1 Feb 2006 13:45:15 +0300 (#509050)

 

Здравствуйте, 9A4172.

Вы писали 1 февраля 2006 г., 12:54:02:

Совершенно нормальное явление при компиляции больших c++ программ с
оптимизацией. При компиляции kde мне приходилось видеть процесс gcc,
скушавший 150-200 мегов памяти, при том, что на той машинке всего 230
(своп спасал). При определённых настройках таких процессов может быть
два и более.

Ответить   Alexander Grebenkov Wed, 1 Feb 2006 14:59:53 +0300 (#509052)

 

В сообщении от Среда 1 Февраль 2006 21:59 Alexander Grebenkov написал(a):

Но почему, например, при сборке kdebase из тарбола (configure, make)
приходится выходить из иксов, иначе система может просто повиснуть из-за
нехватки памяти, а при сборке того же kdebase из SRPM (или даже из того же
самого тарбола с указанием SPEC-файла) до зависания не доходит? Т.е. и в этом

случае памяти - жрет будь здоров, но в рамках.

Ответить   Thu, 2 Feb 2006 01:21:34 +1000 (#509195)

 

1 февраля 2006 18:21 | 9A4172:

Флаги GCC, ld разные. Параметры `configure` разные. Распакуйте тот самый
SRPM и посмотрите в .spec как он его конфигурит.

Ответить   Roman I Khimov Thu, 2 Feb 2006 12:28:24 +0300 (#509672)

 

On Wed, 1 Feb 2006 14:59:53 +0300
Alexander Grebenkov wrote:

Но всему этому далеко до pyqt.
Сборка сожрала где-то 800 Mb памяти, хорошо хоть что в новых версиях
что-то исправили, и расход памяти стал обычным.

Ответить   Wed, 1 Feb 2006 18:15:53 +0300 (#509207)

 

Vladimir Rusinov wrote:

:-) Да, да... там такие немаленькие с++ файлики генерятся....
Знакомая картина.

--
С уважением, Rubystar

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 24313; Возраст листа: 923; Участников: 1459
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/509562

Ответить   Thu, 02 Feb 2006 08:44:47 +0500 (#509562)

 

Здравствуйте, 9A4172.

Вы писали 1 февраля 2006 г., 12:54:02:

К сожалению, очень многие программы память жрут как кони. Сейчас с 256
Mb ещё как-то живу, а вот месяц назад с 96 Mb работа с графикой была
мучением. Правда, первые же эксперименты в нормальной (относительно)
снизили расход памяти на 80 мегабайт. Правда, X всё равно 150 Mb
забирает навсегда. А вообще, при нехватке памяти получается интересная
картина: происходит замедление времени аля матрица - всё работает
долго, но стабильно.
А перезагружали Вы зря - на моём довольно слабом компьютере ни разу не
было зависшего Linux. Хотя лишние программы у меня висят в памяти
иногда по 4-5 часов.

Ответить   Wed, 1 Feb 2006 19:55:14 +0300 (#509253)