Re[4]: Java не нужна
От: SV.  
Дата: 16.06.12 23:01
Оценка:
Здравствуйте, SV., Вы писали:

Q>>>>Почему после завершения жабапрограммы, процесс java.exe продолжает висеть и жрать почти ПОЛГИГАБАЙТА памяти, имея при этом 56 потоков?!

SV.>>>Каждый раз в таких случаях хочется спросить: вы вообще знаете, что такое виртуальная память?
Q>>А 56 тредов -- тоже виртуальные?

SV.>С тредами хрен его знает. Может, протекло что-нибудь и уже фиксят. Как бы то ни было, даже если они не засуспежены, но там есть слипы — тоже потеря небольшая. Судя по общему потреблению ЦПУ процессом, так оно и есть.


Для начала, если вы интересуетесь кишками, вам надо вместо этого фраерского якобы менеджера задач поставить приличный тул (Process Explorer). Затем посмотреть на вкладку Performance в свойствах процесса. Допустим, сейчас на моей машине два процесса sqlserver.exe, каждый жрет по 8.6 (!) гигабайта (а там реальная база, просто сейчас не используется). Working set — 12 мегабайт. Пиковый — 75. У второго — побольше: текущий 65, пиковый сто с лишним. Но базенция там неслабая.

Там же можно и потоки поглядеть. Оба sqlserver'а их насоздавали аж 85 штук. И совсем не ощущается. Вернее всего, это пул потоков. Вхолостую вреда не причиняет.
Re[7]: Java не нужна
От: Cyberax Марс  
Дата: 16.06.12 23:08
Оценка:
Здравствуйте, quwy, Вы писали:

C>>Потому, что банк-клиент писали полные уроды. Чего тут непонятного-то?

Q>Если платформа после завершения программы продолжает держать ресурсы, значит авторы платформы тоже виноваты.
Говорю же — писали уроды. Скорее всего, забыли поставить выход при закрытии окна.

В Win32-приложении банально так же можно сделать — на WM_CLOSE закрыть окно, но не сделать Destroy.
Sapienti sat!
Re[2]: Java не нужна
От: SV.  
Дата: 16.06.12 23:11
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Майкрософт сделала большую ошибку, показывая под названием "Память" виртуальную память. Надо было Working set или типа. Вопросов бы не было.


Вот это просто must-read, прежде, чем высказывать любое недовольство прожорливыми программами:

http://blogs.msdn.com/b/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx
http://blogs.msdn.com/b/oldnewthing/archive/2004/08/10/211890.aspx
http://lwn.net/Articles/250967/
Re[8]: Java не нужна
От: quwy  
Дата: 16.06.12 23:40
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Потому, что банк-клиент писали полные уроды. Чего тут непонятного-то?

Q>>Если платформа после завершения программы продолжает держать ресурсы, значит авторы платформы тоже виноваты.
C>Говорю же — писали уроды. Скорее всего, забыли поставить выход при закрытии окна.
C>В Win32-приложении банально так же можно сделать — на WM_CLOSE закрыть окно, но не сделать Destroy.
Даже если это апплет, а браузер, его запустивший, уже закрыт? Простите, но такого в нормальной платформе быть не должно.
Re[4]: Java не нужна
От: quwy  
Дата: 16.06.12 23:43
Оценка:
Здравствуйте, SV., Вы писали:

Q>>>>Почему после завершения жабапрограммы, процесс java.exe продолжает висеть и жрать почти ПОЛГИГАБАЙТА памяти, имея при этом 56 потоков?!

SV.>>>Каждый раз в таких случаях хочется спросить: вы вообще знаете, что такое виртуальная память?
Q>>А 56 тредов -- тоже виртуальные?
SV.>С тредами хрен его знает. Может, протекло что-нибудь и уже фиксят.
Что это делает в продакшене? Тестировать пред релизом уже не модно?

SV.>Как бы то ни было, даже если они не засуспежены, но там есть слипы — тоже потеря небольшая. Судя по общему потреблению ЦПУ процессом, так оно и есть.

Переключение контекста не слишком дешевая операция, чтобы оставлять треды после завершения программы.
Re[6]: Java не нужна
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 16.06.12 23:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, quwy, Вы писали:


Q>>1. В стиле той системы, в которой запущена программа.

Q>>2. Отзывчивый и без лагов.
C>Eclipse. Впрочем, там лаги бывают из-за логики, но не в интерфейсе.

Idea тоже ничего так

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[7]: Java не нужна
От: Cyberax Марс  
Дата: 17.06.12 01:51
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

Q>>>1. В стиле той системы, в которой запущена программа.

Q>>>2. Отзывчивый и без лагов.
C>>Eclipse. Впрочем, там лаги бывают из-за логики, но не в интерфейсе.
KV>Idea тоже ничего так
Она проваливает первый пункт, потому её и не привёл.
Sapienti sat!
Re[9]: Java не нужна
От: Cyberax Марс  
Дата: 17.06.12 01:52
Оценка:
Здравствуйте, quwy, Вы писали:

C>>Говорю же — писали уроды. Скорее всего, забыли поставить выход при закрытии окна.

C>>В Win32-приложении банально так же можно сделать — на WM_CLOSE закрыть окно, но не сделать Destroy.
Q>Даже если это апплет, а браузер, его запустивший, уже закрыт? Простите, но такого в нормальной платформе быть не должно.
Некоторые уроды любят из апплета запускать отдельную внешнюю Java.
Sapienti sat!
Re[10]: Java не нужна
От: quwy  
Дата: 17.06.12 02:56
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Говорю же — писали уроды. Скорее всего, забыли поставить выход при закрытии окна.

C>>>В Win32-приложении банально так же можно сделать — на WM_CLOSE закрыть окно, но не сделать Destroy.
Q>>Даже если это апплет, а браузер, его запустивший, уже закрыт? Простите, но такого в нормальной платформе быть не должно.
C>Некоторые уроды любят из апплета запускать отдельную внешнюю Java.
То есть дерево процессов не завершается при окончании работы инициализирующего скрипта?
Re[11]: Java не нужна
От: Cyberax Марс  
Дата: 17.06.12 03:52
Оценка:
Здравствуйте, quwy, Вы писали:

Q>>>Даже если это апплет, а браузер, его запустивший, уже закрыт? Простите, но такого в нормальной платформе быть не должно.

C>>Некоторые уроды любят из апплета запускать отдельную внешнюю Java.
Q>То есть дерево процессов не завершается при окончании работы инициализирующего скрипта?
Представь, что ты из браузера распаковал и запустил exe-файл. Примерно та же ситуация.

Я как раз такое поведение видел у одного клиент-банка ОЧЕНЬ крупного банка в США. Зачем так нужно было делать — для меня осталось загадкой.
Sapienti sat!
Re[2]: Java не нужна
От: Трололоша  
Дата: 17.06.12 04:42
Оценка:
Здравствуйте, о_О, Вы писали:

Q>>Никогда на держал на своем компьютере это гуано, но вот пришлось поставить клиент-банк, написанный на жабе...

о_О>поздравляю, теперь твоя системы потенциально скомпрометирована.
о_О>я для того чтобы поиграть в minecraft распаковывал её под виртуалкой на флешку %) запускаю через командную строку
Гы, аналогично.
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[3]: Java не нужна
От: Трололоша  
Дата: 17.06.12 04:42
Оценка: :)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А достаточно было поддержку java в браузерах вырубить


Ты же знаешь, better safe than sorry.
Монашки и те презик на свечку надевают, ага
... << RSDN@Home>>
Да, йа зелёный тролль!
Re[3]: Java не нужна
От: Eugeny__ Украина  
Дата: 18.06.12 10:51
Оценка:
Здравствуйте, quwy, Вы писали:


о_О>>я для того чтобы поиграть в minecraft распаковывал её под виртуалкой на флешку %) запускаю через командную строку

Q>Ну я немного соврал, что жабы у меня на машине не было. Был клиент Oracle, в котором все морды написаны на жабе (убогие и страшные как атомная война). Но там jre заэмбеддино довольно глубоко, лежит себе в подпапке и не отсвечивает, мусорные процессы за собой не оставляет, в автозагрузку ничего не пихает.

Ну, то есть, они тебя разве что внешним видом пугали(это да, Оракл никогда не заморачивался с этим).

Но ты нашел какой-то клиент-банк(кстати, все виденные мной клиент-банки — жуткое говнище), который не завершает работу при закрытии окна, и отчего-то решил, что в этом виновата джава .
Или ты думаешь, что говноприложения только на джаве пишутся? Тогда рекомендую обратить внимание, например, на приблуды от производителей железа — вот уж где квинтэссенция бесполезности и монструозности, без всяких жаб.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[7]: Java не нужна
От: Eugeny__ Украина  
Дата: 18.06.12 11:09
Оценка:
Здравствуйте, quwy, Вы писали:


Q>Если платформа после завершения программы продолжает держать ресурсы, значит авторы платформы тоже виноваты.


А с чего ты решил, что программа завершилась?
Если что, в джаве(и не только в ней) программа и окно — совершенно разные вещи. Более того, подавляющее большинство java программ в принципе не имеют никакого юзеринтерфейса.
Я с апплетами очень давно дела не имел, но есть мнение, что подписанный апплет вполне может проигнорить сигнал на закрытие, и жить своей жизнью(гуи тред умрет, но всем остальным на это как-бы пофигу).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[7]: Java не нужна
От: Eugeny__ Украина  
Дата: 18.06.12 11:11
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:


KV>Idea тоже ничего так


Ну, некоторые лаги у Идеи таки бывают. Но за ту гору функционала, которую она умеет, ей можно простить.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[5]: Java не нужна
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 18.06.12 12:52
Оценка:
Q>Переключение контекста не слишком дешевая операция, чтобы оставлять треды после завершения программы.

Насколько я помню, тред, ждущий на объекте синхронизации, в переключении контекста не учавствует.
Re[8]: Java не нужна
От: quwy  
Дата: 18.06.12 14:50
Оценка:
Здравствуйте, Eugeny__, Вы писали:

Q>>Если платформа после завершения программы продолжает держать ресурсы, значит авторы платформы тоже виноваты.

E__>А с чего ты решил, что программа завершилась?
Хорошо, а есть способ узнать, выполняется ли какой-либо процесс в jre?
Re[4]: Java не нужна
От: quwy  
Дата: 18.06.12 14:53
Оценка:
Здравствуйте, Eugeny__, Вы писали:

о_О>>>я для того чтобы поиграть в minecraft распаковывал её под виртуалкой на флешку %) запускаю через командную строку

Q>>Ну я немного соврал, что жабы у меня на машине не было. Был клиент Oracle, в котором все морды написаны на жабе (убогие и страшные как атомная война). Но там jre заэмбеддино довольно глубоко, лежит себе в подпапке и не отсвечивает, мусорные процессы за собой не оставляет, в автозагрузку ничего не пихает.
E__>Ну, то есть, они тебя разве что внешним видом пугали(это да, Оракл никогда не заморачивался с этим).
Интерфейс не только очень страшный, но и очень неотзывчивый. Даже на современном железе виден процесс отрисовки элементов.

E__>Но ты нашел какой-то клиент-банк(кстати, все виденные мной клиент-банки — жуткое говнище), который не завершает работу при закрытии окна, и отчего-то решил, что в этом виновата джава .

Как проверить наличие java-процесса?

E__>Или ты думаешь, что говноприложения только на джаве пишутся? Тогда рекомендую обратить внимание, например, на приблуды от производителей железа — вот уж где квинтэссенция бесполезности и монструозности, без всяких жаб.

Так никто и не спорит.
Re[6]: Java не нужна
От: quwy  
Дата: 18.06.12 14:55
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

Q>>Переключение контекста не слишком дешевая операция, чтобы оставлять треды после завершения программы.

EOH>Насколько я помню, тред, ждущий на объекте синхронизации, в переключении контекста не учавствует.
Переключения как такового конечно не происходит, но в кольце он висит и шедулер работой все равно загружает.
Re[9]: Java не нужна
От: Eugeny__ Украина  
Дата: 18.06.12 15:26
Оценка:
Здравствуйте, quwy, Вы писали:

Q>Здравствуйте, Eugeny__, Вы писали:


Q>>>Если платформа после завершения программы продолжает держать ресурсы, значит авторы платформы тоже виноваты.

E__>>А с чего ты решил, что программа завершилась?
Q>Хорошо, а есть способ узнать, выполняется ли какой-либо процесс в jre?

Привязаться к нему дебаггером — там будут видны все потоки, и на чем они остановлены(и заодно вся остальная инфа).
Туториал простой как пробка: http://docs.oracle.com/javase/1.5.0/docs/guide/plugin/developer_guide/debugger.html#how

Но браузер и апплет, ясен пень, придется рестартануть, чтобы новые сеттингсы подтянуло.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.