powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jna и сборка мусора
7 сообщений из 32, страница 2 из 2
jna и сборка мусора
    #38930735
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ладно дебажить. Хотя бы понимать, что там происходит malloc, Java-вская аллокация, через какие функции, какого размера и так далее.

leaderКакую еще динамическую конфигурацию памяти? Чо за бред??
Плохо понимаю трейс, что там за вторая циферька.

начинали с
[GC (Allocation Failure) [PSYoungGen: 33280K->1104K( 38 400K )] 33280K->1184K( 125 952K ), 0.0179369 secs] [Times: user=0.01 sys=0.00, real=0.03 secs]

закончили
[GC (Allocation Failure) [PSYoungGen: 348 160K->0K( 348 672K )] 349252K->1092K( 436 224K ), 0.0007362 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
Здесь callback перестал вызываться


Как минимум young вырос с 38 Mb до 348 Mb. Что обозначает вторая циферка (125 Mb -> 436 Mb) - не знаю.

Тут же смотрит трейс с явным вызовом System.gc():

[Full GC (System.gc()) [PSYoungGen: 155K->0K( 38 400K )] [ParOldGen: 1081K->1112K(87552K)] 1237K->1112K( 125 952K ), [Metaspace: 6168K->6168K(1056768K)], 0.0048000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
[GC (System.gc()) [PSYoungGen: 665K->176K(38400K)] 1778K->1289K(125952K), 0.0235730 secs] [Times: user=0.13 sys=0.00, real=0.03 secs]
И так далее..

Совершенно другое распределение памяти. Ну и смысл сравнивать логи при этом? одно мягкое, другое теплое. Одно вроде работает при 200-300 Mb и не падает. Другое умудряется падать при гиге.

Самое лучшее смотреть на исходный код. Хотя, никто не мешает снять дамп памяти и посмотреть, какой мусор там валяется любым анализаторов логов. Может на какие идеи натолкнет. Но в любом случае, сначала поставить нормальные настройке для JVM. Что бы, хотя бы, сравнивать работающий и падающий вариант при одинаковых настройках памяти.
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38930773
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКак минимум young вырос с 38 Mb до 348 Mb. Что обозначает вторая циферка (125 Mb -> 436 Mb) - не знаю.

На сколько я понимаю первые значения относятся к живым объектам в поколении, а вторые к размеру кучи отведенному под это поколение.
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38930872
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С первой тройкой цифр все ясно:
PSYoungGen: 348 160K->0K(348 672K)] 349252K->1092K(436 224K),

Было 348 Mb в young, все вычищено, осталось 0.

А вот следующая тройка цифр подкупает своей загадочностью. Что это? OldGen? Сфигли PSYoungGen GC начал OldGen чистить (и главное, зачистил). Откуда там такие огромные цифры.

Попытался почитать доку (до этого настраивал GC только на 1.6), но как-то там все мало подробно.

Нифига не могу найти алгоритма, в каких случаях, минор коллектор, запускает мажор коллектор. Описание алгоритмов подкупают своей подробностью (((

Я бы вырубил нафиг всю эту автоматическую настройку и нормально настроил память.


Если приложение "глючит" и требует вызова full gc (возможно что-то через финализаторы чистится, что явно "кривость" архитектуры), то попытаться заставить java более менее регулярно его вызывать. Или специально наплодить мусора в куче (задавив young область по максимому) или настроив более-менее периодический запуск full gc. Как минимум "The Concurrent Collector" явно можно так попытаться настроить, с Parallel скорее всего не получится.

предполагая, что исходный код не доступен и нужно придумывать work around'ы. Конечно, по хорошему, нужно видеть код и дамп памяти.

Пока, подозреваю (гадая на кофейной гуще) две возможные кривости кода:
1. Выделения очень огромных областей памяти > 100 - 200 Mb одним куском
2. Что-то завязано на финализаторах ( finalize() )
возможно и одно и второе, ну или что-то из свеже придуманного используется и не до конца почитали доку
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38930880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНа сколько я понимаю первые значения относятся к живым объектам в поколении, а вторые к размеру кучи отведенному под это поколение.
А может я не правильно понял. "Вторые циферки" больше походят на общий размер кучи.
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38930889
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevА вот следующая тройка цифр подкупает своей загадочностью.....
нашел описание формата
http://www.oracle.com/technetwork/java/example-141412.html

Типа вторая тройка это
<starting occupancy3> is the occupancy of the entire heap before the collection
<ending occupancy3> is the occupancy of the entire heap after the collection
<pause time3> is the pause time for the entire garbage collection. This would include

Но тогда вообще какой-то бред получается. Если это весь heap (young + tenured), то размер tenured какой-то НЕ реальный.

436 224K - 348 672K = < 100 Mb

Но это какой-то бред. Все старые доки уверяли, что размер tenured как минимум должен быть больше размера young. Иначе в процессе GC можно упасть.
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38930904
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev2. Что-то завязано на финализаторах ( finalize() )

в JNA освобождение памяти (физической, freemem) сидит в finalize()

думаю у топикстартера много new Memory()
...
Рейтинг: 0 / 0
jna и сборка мусора
    #38931056
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa...в JNA освобождение памяти (физической, freemem) сидит в finalize()...
Матных слов не хватает. И где таких студентов учат....

Вот ларчик просто и открывался. Нефиг студенческими поделками пользоваться. Хотя, в свое время, в похожие ошибки даже Oracle Co. носом тыкать приходилось
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / jna и сборка мусора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]