home.social

#jvm_hacks — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #jvm_hacks, aggregated by home.social.

  1. [Перевод] Оптимизация Java-приложений для Arm64 в облаке

    JVM в облаке часто экономит память и CPU по дефолту, из-за чего Spring-сервис использует меньше ресурсов, чем вы ему выделили. В новом переводе от команды Spring АйО разберем, какие существуют базовые настройки кучи, GC и CPU помогают синхронизировать JVM с лимитами контейнера и не переплачивать за простаивающие ресурсы.

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #jvm_options #jvm_hacks #jvm_monitoring #jvm_hacking #arm64 #aarch64

  2. [Перевод] Программирование, ориентированное на данные, для Java: за пределами record-классов

    Record-классы удобны, пока класс = «состояние, всё состояние и ничего кроме». Любое отклонение (API канонического конутруктора не равно внутреннему представлению, нужно наследование) ломает «автогенерацию» и паттерн-деструктурирование (destructuring). В новом переводе от команды Spring АйО статьи Brian`а Goetz`а, архитектора Java Language, предлагается следующий шаг в направлении data-oriented programming in Java: классы-носители и интерфейсы-носители (они же Carrier classes & interfaces). Концептуально, carrier классы родились из record-ов путем ослабления части их ограничений. Комментарий от Михаила Поливаха : Друзья, помните, пожалуйста, что данная статья по сути является суммированием обсуждения Carrier классов из JDK Project Amber Mailing List. Я это к тому, что пока непонятно, в какой версии языка carrier классы появятся, и появятся ли они в том виде, в котором представлены в статье. Статью стоит рассматривать как пищу для размышления.

    habr.com/ru/companies/spring_a

    #java #jvm #kotlin #jvm_options #jvm_hacks #spring #spring_boot #spring_framework

  3. [Перевод] JVM ещё жива, но уже бесполезна: как Netflix научился убивать её по GC

    Вместо того чтобы ждать, пока Java-приложение окончательно "зависнет" из-за GC, инженеры Netflix сделали jvmquake — инструмент, который сам определяет, что JVM уже не спасти, вызывает дамп памяти и аккуратно завершает процесс. Меньше тревог, больше аптайма. Подробности - в новом переводе от команды Spring АйО .

    habr.com/ru/companies/spring_a

    #java #kotlin #jvm #jvm_hacks #jvm_options #netflix #spring #spring_boot #spring_framework #springboot

  4. [Перевод] Обнаружение взаимоблокировок на JVM с помощью Fray

    Команда Spring АйО подготовила перевод про Fray — инструмент для обнаружения и воспроизведения ошибок многопоточности в Java-программах. Основанный на научных исследованиях и написанный на Kotlin, Fray использует технику теневой блокировки для выявления взаимоблокировок и других проблем синхронизации. Он уже доказал свою эффективность на таких проектах, как Kafka, Flink и Lucene.

    habr.com/ru/companies/spring_a

    #jvm #java #blocking #kotlin #jvm_hacks #spring #spring_boot #spring_framework #springboot #spring_data

  5. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization

  6. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization

  7. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization

  8. [Перевод] JVM: Барьеры, которые подходят любому GC

    В новом переводе от команды Spring АйО рассказывается, как сократить время разогрева JVM с помощью ahead-of-time компиляции (в рамках Project Leyden), а также объясняется, почему традиционные GC-барьеры мешают гибкому выбору сборщика мусора. Статья содержит интересное решение — GC-независимые барьеры загрузки , которые можно «пропатчить» в рантайме под конкретный GC, обеспечивая совместимость без переписывания кода.

    habr.com/ru/companies/spring_a

    #java #jvm #jit #jitкомпилятор #jitкомпиляция #jvm_hacks #jvm_options #performance #performance_optimization