LINUX.ORG.RU

Всё, что вы хотели знать о стек-трейсах и хип-дампах — встреча с Андреем Паньгиным, Санкт-Петербург

 ,


2

2

В четверг, 26 мая в 20:00, в питерском офисе компании Luxoft состоится встреча JUG.ru с Андреем Паньгиным, ведущим разработчиком Одноклассников. Тема встречи — особенности JDK, связанные с обходом Heap-a и стеками потоков.

Stack Trace и Heap Dump — не только инструменты отладки, но ещё и дверцы к самым недрам виртуальной машины Java. Презентация посвящена особенностям JDK, так или иначе связанным с обходом хипа и стеками потоков. В её основе лежат популярные вопросы про JVM со StackOverflow и реальные случаи из практики.

  • Влияют ли стек-трейсы на производительность?
  • Как снимать дампы в продакшне без побочных эффектов?
  • Как устроены утилиты jmap и jstack изнутри?
  • Почему все профайлеры врут, и как с этим бороться?
  • Как сканировать хип средствами JVMTI и Serviceability Agent?

Доклад, подкреплённый живой демонстрацей и performance-тестами, ответит на эти и другие вопросы. Вы также познакомитесь с новым Stack-Walking API (JEP 259), добавленным в Java 9, и узнаете о недокументированных возможностях HotSpot JVM.

О докладчике

Андрей Паньгин специализируется на создании ПО для высоконагруженных серверов в проекте Одноклассники. С увлечением копается во внутренностях JVM и JDK. Ранее работал в Sun Microsystems над виртуальной машиной HotSpot.

Место проведения

Петербургский офис компании Luxoft:
Бизнес-центр «Осень», Свердловская наб., дом 44, литера Я

Транспорт

  • Бесплатный автобус-шаттл «Теорема» от станции метро «Площадь Ленина»
  • Маршрутка К137
  • Автобусы 37 и 106 — остановка на пересечении Полюстровского и Пискаревского пр.

>>> Подробности

★★★★☆

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

стек-трейсах и хип-дампах

Че, шпана, русского и могучего тебе уже не хватает?

anonymous
()
Ответ на: комментарий от devl547

никогда, ибо жабоговнокодеры сами по жизни тормоза дремучие

anonymous
()
Ответ на: комментарий от EXL

а почему оно написано на С++, вот у меня сейчас java se binnary жрёт 1,5 гб оперативы, jvm 1 гб, и ещё сверху обе по 40% проца, это всё C++?*

erzentnd
()
Ответ на: комментарий от hateyoufeel

я просто прикола не понимаю, сам майнкрафт жрёт 500 метров озу и 10 от проца, а доп джава хрени больше 2 гб и 80% проца.

erzentnd
()
Ответ на: комментарий от erzentnd

Ох, эрзя. Поговори лучше о рисе, не лезь сюда со своей дремучестью

vostrik ★★★☆
()

запись будет? или только ирл?

rusich
()
Ответ на: комментарий от anonymous

Когда вы купите процессор чуть помощнее чем ваш Intel Pentium III 650 МГц.

за чем, главное скомпилять правильно, даже 32 мб оперативки

anonymous
()
Ответ на: комментарий от EXL

Когда JVM с крестов на Java перепишут.

А есть компилятор жабы в нативный байт-код? Или jvm на жабе надо будет в jvm на крестах пускать?

Не троллю, просто интересно

upcFrost ★★★★★
()
Ответ на: комментарий от upcFrost

У hotspot есть флаг включающий aot, только он не рекомендуется, т.к. с jit быстрее из-за оптимизаций в рантайме на основе даннных встроенного профайлера.

anonymous
()
Ответ на: комментарий от t184256

Ну сэмплирующие 99.99999%, что соврут, правда, в 99.99999% случаев их точности хватит, если ты не нетфликс или твиттер.

cdshines ★★★★★
()
Ответ на: комментарий от buddhist

А что такого? У них нагрузка же просто огромная и нужно очень тонко оптимизировать, поэтому как раз его умения там очень востребованы.

php-coder ★★★★★
()
Ответ на: комментарий от upcFrost

Для эмбедеда есть и жвм писаная на яве. Для всяких чипов. Но это все закрыто и только для своих или за бабло.

WatchCat ★★★★★
()
Ответ на: комментарий от EXL

Тормозит из-за C++

Чет мне вспоминается, что было pure C. Кресты наверное уже в оракле добавили.

anonymous
()
Ответ на: комментарий от buddhist

Лучше быть первым в провинции, чем вторым - в Риме. А так, судя по тому, что представители «Одноклассников» и «Майлрушечки» рассказывают на конференциях, программисты там годные, а все проблемы из-за руководства.

GblGbl ★★★★★
()
Последнее исправление: GblGbl (всего исправлений: 1)

Тема хорошая, но Андрея слушать тяжело... :(

X-Pilot ★★★★★
()
Ответ на: комментарий от X-Pilot

Спасибо!!

И анону спасибо, который выше дал ссылку на их канал.

alozovskoy ★★★★★
()

Почему все профайлеры врут, и как с этим бороться?

То есть еще и профайлеры врут...

mittorn ★★★★★
()
Ответ на: комментарий от upcFrost

Не, т.е. aot компилятор есть, но он работает хуже чем jit из-за фундаментальной проблемы останова. Jit имеет информацию о коде времени выполенеия, потому, например, может скомпилировать цикл с наиболее оптимальным коэффициентом разворота, а aot-компилятор такой информацией обладать не может в принципе, потому во многих случаях субоптимален.

anonymous
()

Влияют ли стек-трейсы на производительность?

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

Deleted
()
Ответ на: комментарий от buddhist

потом еще в мыло осталось перейти.. :)

umren ★★★★★
()
Ответ на: комментарий от anonymous

Работу самой jvm можно. Оно как сервера дб оракл. Крутилок много.

unt1tled ★★★★
()
Последнее исправление: unt1tled (всего исправлений: 1)
Ответ на: комментарий от matrixd

Самое смешное, что этим одним человеком из аудитории как раз был я [это правда!] ^^ Но я на Андрея не в обиде: потом на работе нарвался на пачку необъяснимых рандомных крэшей JVM на Java 6 при запуске JUnit тестов... :)

X-Pilot ★★★★★
()

стек

Прочитал как «стейк». Эх...

cipher ★★★★★
()
Ответ на: комментарий от upcFrost

А есть компилятор жабы в нативный байт-код? Или jvm на жабе надо будет в jvm на крестах пускать?

Есть машинный код. Это обычные байты памяти. Так же как и Java Bytecode это такие же байты памяти. Ничего не мешает написать на Java компилятор, который будет переводить Java Bytecode в машинный код, т.е. JIT-компилятор. Понятно, что какой-то микроскопический кусок кода для передачи управления на эти байты памяти нужно будет писать на языке ассемблера или на C, но это незначительные детали реализации. Если ты про проблему курицы и яйца, примитивный интерпретатор JVM пишется любым студентом за пару месяцев и, опять же, он будет микроскопическим и значения иметь не будет. Т.е. при старте будет запускаться этот самый примитивный интерпретатор, который будет запускать основную машину на Java, которая потом сама себя откомпилирует в машинный код и дальше будет работать он. Или просто будет в поставке идти уже откомпилировванная пускалка, вариантов много.

Скорее всего основная проблема в том, что Hotspot написан давным давно, в него вложены тысячи человеколет и переписывание его на Java просто не оправдает этих затрат, а не в том, что C++ может иметь какие-то мифические преимущества в этой задаче.

Legioner ★★★★★
()
Ответ на: комментарий от Deleted

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

Так генерацию стектрейсов можно отключить же. А что, стандартный логгер абсолютно всегда пытается узнать имя метода, или только если его в конфиге попросят это имя выводить?

Legioner ★★★★★
()

а какая либо трансляция предусмотрена?

wieker ★★
()

JAVA это такая гадость, что плеваться хочется.

anonymous
()
Ответ на: комментарий от GNU-Ubuntu1204LTS

доклады на английском тоже будут :)

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от buddhist

В сане основатель сказал «Смысла нет, мы все умрём».

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.