Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Расходование памяти / 17 сообщений из 17, страница 1 из 1
18.05.2005, 08:10
    #33071023
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Коллеги, подскажите.
Есть небольшое приложение. Выполняет след. функции, коннектится к БД, берет оттуда некие данные и формирует из них письмо, после чего отображает его текст в свинговской форме, и после нажатия кнопки Отправить, отправляет письмо определенному адресату.
Вчера посмотрел в диспетчере задач и просто офигел. Приложение потребляет порядка 20 Мб оперативной памяти, у меня MSOutlook в три раза меньше потребляет :).
Воспользовавшись JConsole было определено, что примерно 3 Мб занимает heap memory, и порядка 15 - 16 Мб non heap memory.
Если с кучей все более-менее понятно, то со вторым не совсем.
Объясните плиз, для чего расходуется non heap memory, можно ли уменьшить ее расход, и вообще где про это доходчиво написано?
Спасибо.
...
Рейтинг: 0 / 0
18.05.2005, 08:32
    #33071042
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Вы считаете 20 МБ это много? :)
...
Рейтинг: 0 / 0
18.05.2005, 08:37
    #33071047
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
TimmВы считаете 20 МБ это много? :)Честно говоря, да :) Это же маленькая утилитка, у которой функционала то и никакого нет. Хотя здесь даже не столь важно, сколько она занимает, программа находится в памяти несколько секунд. Но просто стало интересно, куда все уходит.
...
Рейтинг: 0 / 0
18.05.2005, 11:41
    #33071559
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Продолжаю тему. Цитата:
sun.comThe Java virtual machine has a method area that is shared among all threads. The method area belongs to non-heap memory. It stores per-class structures such as a runtime constant pool, field and method data, and the code for methods and constructors. It is created at the Java virtual machine start-up.

The method area is logically part of the heap but a Java virtual machine implementation may choose not to either garbage collect or compact it. Similar to the heap, the method area may be of a fixed size or may be expanded and shrunk. The memory for the method area does not need to be contiguous.

In addition to the method area, a Java virtual machine implementation may require memory for internal processing or optimization which also belongs to non-heap memory. For example, the JIT compiler requires memory for storing the native machine code translated from the Java virtual machine code for high performance.
Как я понял из этого текста в этой области располагаются структуры классов, какие-то данные относительно методов и полей. Но ведь не 15 Мб!
Так можно как-то уменьшить эту область памяти? Или стоит смириться с тем, что jvm будет стандартно потреблять 15-16 Мб для своих внутренних процессов?
...
Рейтинг: 0 / 0
18.05.2005, 12:33
    #33071724
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Хочешь сказать, что ты только сейчас заметил сколько jvm памяти кушает ? :))
Если объяснить очень грубо и примитивно, то jvm это очень и очень сложная программа, написать такую под силу только большим корпарациям (SUN, IBM, ORACLE), ну а очень и очнь сложные программы, кушают очень и очень много памяти :)
Одна из сложностей, это кросплатформенность. (не самой jvm, а байт кода, который она исполняет).

ps Может кто нибудь объяснить, зачем MS для .нет аналог jvm сотварила?
...
Рейтинг: 0 / 0
18.05.2005, 12:46
    #33071769
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
GMax
Как я понял из этого текста в этой области располагаются структуры классов, какие-то данные относительно методов и полей. Но ведь не 15 Мб!
Так можно как-то уменьшить эту область памяти? Или стоит смириться с тем, что jvm будет стандартно потреблять 15-16 Мб для своих внутренних процессов?

Имхо, именно так дело и обстоит: стоит смириться :)
...
Рейтинг: 0 / 0
18.05.2005, 13:40
    #33071991
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
wessen
ps Может кто нибудь объяснить, зачем MS для .нет аналог jvm сотварила?
"Чтобы всех отыскать, воедино созвать и единой мелкомягкой волей сковать...." :)
...
Рейтинг: 0 / 0
19.05.2005, 11:11
    #33073997
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Вы можете ограничить память, потребляемую Вашим приложением хоть до 1Mб,
но ЗАЧЕМ? Java видит свободную память и не понимает почему-бы ею не воспользоваться. Увидит меньше, смирится и воспользуется тем, что есть.
...
Рейтинг: 0 / 0
19.05.2005, 11:52
    #33074124
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Valery ShiskinВы можете ограничить память, потребляемую Вашим приложением хоть до 1Mб,
но ЗАЧЕМ? Java видит свободную память и не понимает почему-бы ею не воспользоваться. Увидит меньше, смирится и воспользуется тем, что есть.А можно поподробнее? А еще лучше пример, как ограничить потребление приложением памяти до 1 Мб?
...
Рейтинг: 0 / 0
19.05.2005, 12:02
    #33074172
J--
J--
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
imho это происходит именно из-за того, что Вы испрользуете SWING.
Там очень большая и видимо очень тяжелая генерация классов.
Потому что программа без SWING даже с более сложным функционалом может потреблять меньше. И когда добавляешь SWING - всегда подрастает.
...
Рейтинг: 0 / 0
20.05.2005, 14:40
    #33077259
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Для извращенцев:

Насколько я помню, ограничить память JVM можно при помощи параметра
java -Xmx1M ...
...
Рейтинг: 0 / 0
20.05.2005, 14:43
    #33077276
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Ну и для полного счастья - на стек тоже мегабайт выделим: java -Xms1M...
...
Рейтинг: 0 / 0
20.05.2005, 14:44
    #33077279
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
[off] Интересно, запустится у него прога с такими настройками памяти?... [/off]
...
Рейтинг: 0 / 0
20.05.2005, 14:56
    #33077337
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Кувалдин Роман[off] Интересно, запустится у него прога с такими настройками памяти?... [/off]Это я уже попробовал давно. И конечно получил аут оф мемори. Просто Valery Shiskin говорил так, будто можно ограничить и все будет работать.
...
Рейтинг: 0 / 0
20.05.2005, 15:02
    #33077357
Dima Yermak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Но никто же не говорил что оно будет работать так как надо :-)


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
20.05.2005, 15:14
    #33077398
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Dima YermakНо никто же не говорил что оно будет работать так как надо :-) Так хоть бы как-нибудь работало, а то ведь не работает же :)
...
Рейтинг: 0 / 0
23.05.2005, 11:13
    #33079541
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расходование памяти
Если программе для работы требуется 128 мб памяти, а в наличии только 32 - то как ни старайся - выйдет OutOfMemory. Ты через профайлер посмотри, сколько программе надо памяти, тогда и ограничивай.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Расходование памяти / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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