JVM internals - what does the JVM do? — Ian Rogers
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
JVM internals - what does the JVM do? — Ian Rogers
интересный ток, кому то наверное баян, прошу простить, остальным, силь ву пле:
если интересно узнать больше про Азул:
(я к ним никакого отношения не имею если что)
если интересно узнать больше про Азул:
(я к ним никакого отношения не имею если что)
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Спасибо, не слышал. Надо будет посмотреть.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
сразу поискал других его токов но увы, это единственный..
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Спасибо, послушаю с интересом. Этот выпуск не слышал.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Мне нравились рассказы John Rose про JVM, в блоге. https://blogs.oracle.com/jrose/
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: JVM internals - what does the JVM do? — Ian Rogers
Мне всегда интересовало, что Azul при всех великих обещаниях, всех этих умных людях, оставшись практически в одиночку на рынке java процессоров и ускорителей, никак не может ни родить ни продать за столько лет.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
вроде продают они нормально. но то что иана потеряли это им конечно минус.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: JVM internals - what does the JVM do? — Ian Rogers
Продукты и клиенты у них есть. Но судя по 10-му раунду финансирования, как-то не очень хорошо у них дела идут до сих пор. Кстати, о JVM. Кроме "Inside JVM 2" и спецификации, есть ли еще какие-нибудь стоящие внимания фундаментальные труды про внутренности JVM? Отдельных talk'ов много, но хотелось бы связанного и художественного.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
у джавы до сравнительно недавнего времени дела шли не очень, только после второго баста и выхода семёрки (которая ещё толком не внедрилась) начинается оживление. у них ещё всё впереди.dotcom wrote:Продукты и клиенты у них есть. Но судя по 10-му раунду финансирования, как-то не очень хорошо у них дела идут до сих пор. Кстати, о JVM. Кроме "Inside JVM 2" и спецификации, есть ли еще какие-нибудь стоящие внимания фундаментальные труды про внутренности JVM? Отдельных talk'ов много, но хотелось бы связанного и художественного.
если конечно оракл не решит проблему GC, тогда конечно им ловить будет нечего. а пока их JVM значительно лучше штатного.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 13683
- Joined: 16 Jan 2001 10:01
Re: JVM internals - what does the JVM do? — Ian Rogers
Я извиняюсь, но почти ничего не понял.rzen wrote: у джавы до сравнительно недавнего времени дела шли не очень, только после второго баста и выхода семёрки (которая ещё толком не внедрилась) начинается оживление. у них ещё всё впереди.
если конечно оракл не решит проблему GC, тогда конечно им ловить будет нечего. а пока их JVM значительно лучше штатного.
Кто такой второй баст?
И какие проблемы у оракла с GC?
Какой JVM считается штатным, а какой - лучшим?
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
у штатной JVM проблема в том, что на время GC жизнь VM останавливается. и чем больше памяти тем дольше это может занимать. конечно есть способы минимизировать эти зависоны, но полностью от них избавиться средствами штатной оракловской JVM (т.н. "HotSpot") не представляется возможным.
второй баст это я так любя назвал айтишный бубль 2000-01го года. как раз в тот период джава начала стагнировать и я, признаться, снял руку с пульса, поскольку был убеждён что джава заканчивается. соответственно жирных клиентов азулу наверное было сложновато найти. когда стало ясно что в лагере джавы зашевелилась жизнь, когда объявили а потом выпустили семёрку, уровень оптимизма повысился, область применения джавы расширилась, думаю нужда в конкурентной сборке мусора для некоторых задач весьма актуальна. что скорее всего положительно скажется на азуле. вполне возможно что они банально надеются что их купит оракл.
второй баст это я так любя назвал айтишный бубль 2000-01го года. как раз в тот период джава начала стагнировать и я, признаться, снял руку с пульса, поскольку был убеждён что джава заканчивается. соответственно жирных клиентов азулу наверное было сложновато найти. когда стало ясно что в лагере джавы зашевелилась жизнь, когда объявили а потом выпустили семёрку, уровень оптимизма повысился, область применения джавы расширилась, думаю нужда в конкурентной сборке мусора для некоторых задач весьма актуальна. что скорее всего положительно скажется на азуле. вполне возможно что они банально надеются что их купит оракл.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Я верю сейчас даже в яву не как язык, а как в рантайм-платформу для других языков. Scala, Groovy, Clojure, Jython, JRuby, Rhino и прочее.
Как я смотрю, у HotSpot все коллекторы кроме CMS (concurrent mark sweep, и то пока он может работать с достаточным количеством памяти и дефрагментация кучи не требуется) требуют достаточно больших stop the world pauses, а в CMS так и не смогли полностью побороть фрагментацию. Надо посмотреть как в JRockit сделано.
Как я смотрю, у HotSpot все коллекторы кроме CMS (concurrent mark sweep, и то пока он может работать с достаточным количеством памяти и дефрагментация кучи не требуется) требуют достаточно больших stop the world pauses, а в CMS так и не смогли полностью побороть фрагментацию. Надо посмотреть как в JRockit сделано.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
подозреваю (не хочу накаркать, ибо существование языков поверх JVM это хорошо) что эти другие языки потихоньку отомрут (уйдут ниже радара). думаю они главным образом появились в ответ на стагнацию джавы, а поскольку она заканчивается, то и нужда в альтернативах сильно спадёт. особенно после восьмёрки. останутся только нишевые применения, то есть ни один из этих языков не выйдет в mainstream.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: JVM internals - what does the JVM do? — Ian Rogers
в соседней теме мне с пеной у рта доказывали что это не такrzen wrote:у штатной JVM проблема в том, что на время GC жизнь VM останавливается. и чем больше памяти тем дольше это может занимать. конечно есть способы минимизировать эти зависоны, но полностью от них избавиться средствами штатной оракловской JVM (т.н. "HotSpot") не представляется возможным.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
не видел тот тред, возможно люди имели ввиду альтернативный JVM? тогда возможно.Flash-04 wrote:в соседней теме мне с пеной у рта доказывали что это не такrzen wrote:у штатной JVM проблема в том, что на время GC жизнь VM останавливается. и чем больше памяти тем дольше это может занимать. конечно есть способы минимизировать эти зависоны, но полностью от них избавиться средствами штатной оракловской JVM (т.н. "HotSpot") не представляется возможным.
а штатный на время сборки мусора замирает. весь. все треды. by design. эргономика позволяет минимизировать это время но совсем убрать его никак нельзя.
кстати в токе эта тема замечательно раскрыта.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: JVM internals - what does the JVM do? — Ian Rogers
вот, пожалуйста:
http://forum.privet.com/viewtopic.php?f ... 0&start=75Palych wrote:Java умеет очищать память не останавливая работы. И делает это весьма эффективно.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
аа, да, ну как минимум надо заметить что жава-язык ничего о сборке мусора не знает, сборкой мусора занимается сборщик мусора внутри ЖВМ. сборщик мусора (даже при той же ЖВМ) может быть разный, как, собссно, интеррапт и разъяснил. другое дело что в штатном ЖВМ конкурентной (безостановочной) сборки мусора не может быть, потому как не предусмотрено проксирование чтения объектов в процессе их перемещения в памяти в процессе сборки/дефрагментации, а это архитектурная фишка которую сбоку не пришьёшь.
но я не стану в ту разборку лезть, там поопытнее меня жависты уже отметились.
но я не стану в ту разборку лезть, там поопытнее меня жависты уже отметились.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: JVM internals - what does the JVM do? — Ian Rogers
что интересно, в Win16 это было, но потомы было выброшено.не предусмотрено проксирование чтения объектов в процессе их перемещения в памяти в процессе сборки/дефрагментации
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 4195
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: JVM internals - what does the JVM do? — Ian Rogers
картинка взята из белых бумаг от сана
http://java.sun.com/j2se/reference/whit ... epaper.pdf
согласно ей паузу можно значительно уменьшить, но не сосвсем убрать.
дока относится к java 5, но ничего новее я так и не видел.
Если у кого есть update дайте почитать.
http://java.sun.com/j2se/reference/whit ... epaper.pdf
согласно ей паузу можно значительно уменьшить, но не сосвсем убрать.
дока относится к java 5, но ничего новее я так и не видел.
Если у кого есть update дайте почитать.
You do not have the required permissions to view the files attached to this post.
-
- Уже с Приветом
- Posts: 13683
- Joined: 16 Jan 2001 10:01
Re: JVM internals - what does the JVM do? — Ian Rogers
Раз уж меня процитировали - поясню: полностью избавиться от full GC на сильно нагруженых системах мне лично не удавалось, но уменьшить частоту до пары раз в неделю получалось...Flash-04 wrote:вот, пожалуйста:http://forum.privet.com/viewtopic.php?f ... 0&start=75Palych wrote:Java умеет очищать память не останавливая работы. И делает это весьма эффективно.
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: JVM internals - what does the JVM do? — Ian Rogers
правда?! но как Холмс?
я в "своем" приложении вижу GC каждые несколько минут...
кстати, а такая задержка GC не приведет к резкому росту аллокированной памяти?
я в "своем" приложении вижу GC каждые несколько минут...
кстати, а такая задержка GC не приведет к резкому росту аллокированной памяти?
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Это на Hotspot, какой версии? Стандалон приложение, или внутри appserver-a? В каком generation, каким сборщиком? Что-то прям очень уж хорошо. Полностью избавиться от FullGC нельзя постольку, поскольку нельзя вся объекты делать такими короткоживущими, чтобы они прибирались короткими сборками в young gen.Palych wrote:Раз уж меня процитировали - поясню: полностью избавиться от full GC на сильно нагруженых системах мне лично не удавалось, но уменьшить частоту до пары раз в неделю получалось...Flash-04 wrote:вот, пожалуйста:http://forum.privet.com/viewtopic.php?f ... 0&start=75Palych wrote:Java умеет очищать память не останавливая работы. И делает это весьма эффективно.
Хотя по логике..Если это не EJB сервер, а простая standalone числодробилка, все крупные долгие объекты выделил раз и навсегда, а в процессе работы создаются в больщих количествах только всякие локальные промежуточные матрицы и коллекции, которые живут очень мало - тогда наверное можно, но все равно слабо верится.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
standalone числодробилке паузы сборщика волнуют меньше всего. это как раз в приложениях в которых нужна интерактивность (с юзером или другими системами) асинхронные паузы сбивают с толку.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: JVM internals - what does the JVM do? — Ian Rogers
Я числодробилку привел как пример,где эти паузы можно уменьшить (по крайней мере я вижу как). Я не думаю, что юзер может заметить latency какое-то из за GC. В подавляющем числе задач (для Java) нужен общий thoughtput, а не гарантированный отклик (кроме бирж, может еще некоторых видов биллинга). Есть тут на форуме разработчики биржевого ПО?rzen wrote:standalone числодробилке паузы сборщика волнуют меньше всего. это как раз в приложениях в которых нужна интерактивность (с юзером или другими системами) асинхронные паузы сбивают с толку.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: JVM internals - what does the JVM do? — Ian Rogers
угу, пример хороший, как раз иллюстрирует что в тех случаях когда казалось бы паузу можно минимизировать почти до нуля, эти паузы никого не волнуют. а в случаях когда паузы зарез, ничего с ними и не поделаешь.Zorkus wrote:Я числодробилку привел как пример,где эти паузы можно уменьшить (по крайней мере я вижу как). Я не думаю, что юзер может заметить latency какое-то из за GC. В подавляющем числе задач (для Java) нужен общий thoughtput, а не гарантированный отклик (кроме бирж, может еще некоторых видов биллинга). Есть тут на форуме разработчики биржевого ПО?rzen wrote:standalone числодробилке паузы сборщика волнуют меньше всего. это как раз в приложениях в которых нужна интерактивность (с юзером или другими системами) асинхронные паузы сбивают с толку.
биржевое ПО в частности задержек не любит. ладно обработка потока транзакций и генерация отчётов (ну задержали на полсекунды, не беда) а совсем другое задержать заявку на полсекунды, это врядли кому понравится. вот на них азуловцы и прицеливаются главным образом как я понял.
Don't code today what you can't debug tomorrow.