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

GIMP 2.0.1 не освобождает память X сервера

i386-asplinux-linux-gnu)

Привет всем!

Обнаружил что X потребляет очень много памяти во время работы с сабжем.
Более того после закрытия GIMPа она не освобождается, вот строка из ps:

...
root 948 11.0 55.5 159540 70648 ? SL 14:19 20:20 /usr/X11R6/bin/X
^^^^
...

Своп как и остальная память оказываются забитыми под завязку,
так что есть причины считать что ps показывает именно физическую,
а не видео-память

Единственный способ освободить RAM - убить X сервер.
Посылал в список [Gimp-user] - не получил дельного ответа.

Глюк в Gimp'e?

$ X -version
- - - - - - -
XFree86 Version 4.3.0 (Custom Build: 4.3.0-2)
Release Date: 27 February 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: Linux 2.4.16-010stab016.2.777-smp i686 [ELF]
Build Date: 25 April 2003
OS Kernel: Linux version 2.6.3 (alex@l*****.localdomain) (gcc version 3.2.2
20030222 (ASPLinux 3.2.2-5asp)) #3 Sat Apr 17 16:56:39 EEST 2004 P
- - - - - - -

памяти у меня обычной 128Mb, 190Mb своп, 64Mb видеокарты
(если кому интересно:)

Ответить   Fri, 9 Jul 2004 04:05:40 +0300 (#187096)

 

Ответы:

Alex Dunaevski wrote:

Возможно, "утечка памяти".

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



-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   d2r Fri, 09 Jul 2004 09:43:28 +0300 (#187254)

 

On Пятница 09 Июль 2004 05:05, Alex Dunaevski wrote:

GIMP тут не виноват. И даже поведение X сервера понятно. Память на
самом деле освобождается, только она не отдаётся обратно системе
- стратегия распределения динамической памяти не позволяет.

Нет - плата за скорость и простоту работы с динамической памятью.
(которую, как я понял, вы всё равно не видите из-за нехватки
RAM :-). X cервер (да и многие долгоживущие процессы тоже)
распухает не только от GIMP-а.

Ответить   "Sergey B. Khvatov" Fri, 9 Jul 2004 11:25:35 +0400 (#187276)

 

i386-asplinux-linux-gnu)

On Fri, 9 Jul 2004 11:25:35 +0400
"Sergey B. Khvatov" <xbat***@t*****.ru> wrote:

А мне не понятно...
Как это память освобождается если приложения не могут ее получить?

"динамическая память" это afaik выделяемая с помощью malloc/calloc etc.
И она всегда освобождается после завершения процесса.

или вы понимаете под ДП нечто другое?

когда у меня был GIMP 1.2 ничего не распухало и вообще было ок
все началось только сейчас:(

Ответить   Sat, 10 Jul 2004 22:36:28 +0300 (#188127)

 

On Суббота 10 Июль 2004 23:36, Alex Dunaevski wrote:

Она самая. Только после malloc() а затем free() эта память обратно
в систему не возвращается. Она может быть использована только
другими malloc() в том же процессе. Вернется же в систему она
только после его завершения.

X-сервер - это отдельный процесс. И он хранит в себе свои ресурсы
(например bitmaps, которые могут быть весьма большими). Распухнув
от запросов GIMP-а он уже обратно не уменьшится.

Просто вам хватало памяти. Теперь и GIMP, и X-сервер, и другие
активные приложения перестали помщаться в RAM и стали друг друга
выпихивать в своп. Вот тормоза и начались.

А может, вы открыли картинку побольше :-)

Ответить   "Sergey B. Khvatov" Mon, 12 Jul 2004 12:14:06 +0400 (#188917)

 

i386-asplinux-linux-gnu)

On Mon, 12 Jul 2004 12:14:06 +0400
"Sergey B. Khvatov" <xbat***@t*****.ru> wrote:

Это правда только наполовину.

в info libc:
- - - cut - - -
Occasionally, `free' can actually return memory to the operating
system and make the process smaller. Usually, all it can do is allow a
later call to `malloc' to reuse the space. In the meantime, the space
remains in your program as part of a free-list used internally by
`malloc'.
- - - cut - - -

сдается мне что эти самые 'occasionally' происходят когда
процесс выделил *слишком много* памяти, которая могла бы
пригодиться другим программам, так что кэшировать
ее дo будущего вызова malloc (если такой вообще будет) невыгодно

точно :)

короче у Хов течет память.
Ну для меня это уж слишком очевидно

Вопрос - кто виноват в этом : GIMP, GTK (?!) а мож сам Хсервер
(вообще 4.3 довольно таки стабильный, нареканий не было)

звучит не очень обнадеживающе:(
Так что если у меня памяти <256Mb я уже и GIMPом пользоваться не смогу??!!

ну к примеру я в течение 2.5 часов делаю шапку для своего сайта,
a формат у нее 400x80 .... вроде не очень большая, как Вы считаете?:)

Залез в настройки, установил минимальный размер кэша (несколько Мб)
историю отмен и.тд. - не помогает.

Из программ запущены только демоны, терминал и gvim :)
А после 2.5 часов начинается вышеописанная веселуха...

Ответить   Tue, 13 Jul 2004 03:50:01 +0300 (#189470)

 

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

Вы писали 13 июля 2004 г., 4:50:01:

Это очевидно уже давно
http://www.google.ru/search?hl=ru&ie=UTF-8&q=XFree+4.3.0+memory+leak&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru

(Не подумайте плохого, -----------^^^^^^^^, это опера :) )

Я бы начал именно с X, учитывая мнение гугля
Попробуйте обновить X до 4.3.99.903 правда патчей тянуть много надо
ftp://ftp.xfree86.org/pub/XFree86/develsnaps/
Там есть и дальше продолжения, патчи до 4.4.99.9, если ничего против
смены лицензии X на bsd не имеете, качайте патчи: ~13Mb с 4.3.0 до
4.3.99.903 и уже за 7Мб после.

Ага, прямо Rock stable...

--
С уважением,
Михаил mailto:tmaso***@p*****.net

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



-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 13 Jul 2004 09:27:32 +0400 (#189558)

 

On Tue, Jul 13, 2004 at 09:27:32AM +0400, Михаил Татарко wrote:

Только не `на', а `с'. Они ушли от BSD лиценции, подумав, что это слишком
большая халява для парней из других проектов, усердно тянувших их код ;)

PS. Чего-то Вас давно не было слышно ;)

Ответить   Tue, 13 Jul 2004 10:34:00 +0400 (#189623)

 

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

Простите, что буду использовать английский текст

Я ошибся - XFree86 Project licence 1.0 применима только до
(включительно) 1.04.3.99.902 (XFree86 4.4.0 RC)
А вот XFree86 version 4.3.99.903 (XFree86 4.4.0 RC3) шла уже под 1.1,
а не 4.4.0, как я написал.

Посмотрите http://www.xfree86.org/legal/licenses.html
Ничего, что ограничивало бы халявщиков в воровстве их кода там нет.
Основное из-за чего все дистростроители взбеленились:

Q:What is main the difference between 1.0 and 1.1?

A:
The main difference is that both the source code and the binary
redistribution are now explicitly addressed and separated, because the
original 1.0 license was vague in its reference to "the Software".

Traditionally, "Software" in the free software world has meant "source
code" but as our license allows for binary-only (i.e. no source need
be supplied) redistributions. This made the 1.0 license rather unique
in free software, and created a glaring flaw that meant that the
licence notices "may" not always be reproduced in full.

So the new license, unlike the old one, explicitly requires that the
copyright holders and its contributors, are to be acknowledged in the
end user documentation that accompanies redistribution, i.e. the
binary only redistributions. The original problem has now been solved.

Вот в третьем абзаце и все разногласия:
Они хотят признания своих заслуг большими буквами на&в коробке с
дистрибутивом, а рядом так мееелко будет <font size=-6>red hat</font>
:)
, хотя рядом:

Q:What about GPL-compatibility? Is XFree86 GPL compatible?

A:
The XFree86 Project maintains that the 4.4.0 release of XFree86 is as
GPL compatible as any and all previous versions were.

Q:Can XFree86 under the new 1.1 license still be distributed with GPL
programs?

A:This issue called 'mere aggregation' concerns putting two programs
of different licensing schemes side by side on the same CD or DVD or
hard disk. In this particuar case, just because one of the programs is
covered by the GPL does not mean it's neighbor must also. They are
independent of each and are 'merely aggregated' in the same space.

XFree86 has always been 'aggregated' with GPL programs and can
continue to be so.

Q:And so are you still free?

A:Absolutely. Always have been, always will be. We consider this the
foundation of who we are, and so we put it in our name ;-)

Кстати Сергей Удальцов (svu) очень ругался на X.org - подробностей не
помню, но что-то они там с переключением раскладок поналомали.

Исправляюсь ;)

--
С уважением,
Михаил mailto:tmaso***@p*****.net

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



-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 13 Jul 2004 15:01:14 +0400 (#189872)

 

On Tue, Jul 13, 2004 at 03:01:14PM +0400, Михаил Татарко wrote:

По сути тоже самое. Они хотят, чтобы была надпись: Made by XFree86
project, including и по-фамильно... ;) А многие этого не хотят.

svu вообще много и часто ругается ;-) только про раскладки он в Sun
говорил, afair... Я вот недавно Slackware 10 смотрел (там теперь xorg),
но ничего страшного с xkb не видел...

Ответить   Tue, 13 Jul 2004 18:19:41 +0400 (#190009)

 

Напоминаю, на всякий случай, что лицензии и прочие достоинства лучше
обсуждать в

http://subscribe.ru/catalog/comp.soft.linux.debate

куда и приглашаю всех для дальнейшей дискуссии.

Вторник 13 Июль 2004 18:19, Mike Belopuhov написал:

Ответить   Xinus Tue, 13 Jul 2004 19:03:39 +0400 (#190045)

 

i686-pc-linux-gnu)

возможно так, но хотелось бы поделиться своими наблюдениями:
после запуска mozilla, gimp и др больших программ X-ы действительно разрастаются
в памяти. И после закрытия этих программ не уменьшаются.
Но вот заметил такую особенность, что когда машина остается на ночь включенной,
то на утро X-ы опять "легкие". Возможно работает все-таки какой-то механизм очистки
памяти в X-ах, но запускается он не часто.
К сожалению документального подтверждения моим словам нет (просто не искал),
но возможно так дело и обстоит?

Ответить   Tue, 13 Jul 2004 09:50:04 +0300 (#189655)

 

13 Июль 2004 04:50, Alex Dunaevski написал:

Use the source! Разглядывание исходника функции free из glibc показывает, что

это самое "Occasionally" происходит тогда, когда свободный сегмент памяти
находится в конце выделенного системой сегмента и (действительно) памяти
выделено больше некоторого предела (определяется константой
FINAL_FREE_BLOCKS). Так что память в систему все-таки возвращается, когда
делается free.

Вот еще интересный вопрос: выделение/сокращение сегмента памяти, выделенного

под кучу делается при помощи системного вызова brk(). Но в мане написано:

---------------------cut CONFORMING TO
BSD 4.3

brk and sbrk are not defined in the C Standard and are deliberately
excluded from the POSIX.1 standard (see paragraphs B.1.1.1.3 and
B.8.3.3).

cut А что же на замену в POSIX.1? Может кто видел эти пресловутые параграфы
B.1.1.1.3 и B.8.3.3?

Ответить   Vladimir Efremov Tue, 13 Jul 2004 13:49:51 +0400 (#189810)

 

On Вторник 13 Июль 2004 13:49, Vladimir Efremov wrote:

Я не знаю, какому стандарту это соответствует, но динамическая
память выделяется с помощью mmap

Ответить   "Sergey B. Khvatov" Tue, 13 Jul 2004 13:57:22 +0400 (#189816)

 

Это как раз и соответствует POSIX.1 (IEEE Std 1003.1):

sys/mman.h - memory management declarations

mlock(), mlockall(), mmap(), mprotect(), msync(), munlock(),
munlockall(), munmap(), posix_mem_offset(), posix_typed_mem_get_info(),
posix_typed_mem_open(), shm_open(), shm_unlink()

Ответить   Alexander Dudar Tue, 13 Jul 2004 14:55:31 +0400 (#189871)

 

13 Июль 2004 13:57, Sergey B. Khvatov написал:

С каких это пор? Вы man mmap читали?

Ответить   Vladimir Efremov Tue, 13 Jul 2004 17:11:54 +0400 (#189947)

 

On Вторник 13 Июль 2004 17:11, Vladimir Efremov wrote:

Нет - всегда использовал "втёмную" :-) Правда, анонимным не
пользовался, предпочитал родной malloc(), а другое применение
этого как-то в голову не приходит :-)

Если это для вас сюрприз - посмотрите в /proc/self/maps на строки
с dev 0:0.

И сами прочитайте man ещё раз.

Ответить   "Sergey B. Khvatov" Tue, 13 Jul 2004 17:25:41 +0400 (#189965)

 

13 Июль 2004 17:25, Sergey B. Khvatov написал:

Тут и man читать не надо - mmap используется для отображения файлов на память,

а не для выделения памяти.

Вот и man не даст соврать ;) :

cut The mmap function asks to map length bytes starting at offset offset
from the file (or other object) specified by the file descriptor fd
into memory, preferably at address start.

Ответить   Vladimir Efremov Tue, 13 Jul 2004 18:22:21 +0400 (#190007)

 

Vladimir Efremov wrote:

Malloc использует mmap для выделения больших кусков памяти, подробнее об
этом можно прочитать на www,gnu.org - документация по libc.

Andrew Gusev

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



-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписать: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 13 Jul 2004 23:53:27 +0400 (#190211)