home.social

#heap — Public Fediverse posts

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

  1. Анализируем heap-дампы с прода, не привлекая внимания безопасников

    Heap-дампы JVM – бесценный источник информации при разборе аварий с OutOfMemory и оптимизации производительности. Но вместе с тем они же – потенциальные каналы утечки данных, ведь будучи снятыми с боевого сервиса, дампы уносят в себе всё, с чем работал сервис на момент снимка: логины, пароли (иногда в открытом виде), важные ID и т.п. – словом, всяческие sensitive данные, которые не нужны для анализа, но могут навлечь на получателя дампа серьёзную ответственность и риски. Как этого избежать без ущерба делу – разбираемся под катом.

    habr.com/ru/companies/spring_a

    #jvm #heap #performance #security #leak

  2. Анализируем heap-дампы с прода, не привлекая внимания безопасников

    Heap-дампы JVM – бесценный источник информации при разборе аварий с OutOfMemory и оптимизации производительности. Но вместе с тем они же – потенциальные каналы утечки данных, ведь будучи снятыми с боевого сервиса, дампы уносят в себе всё, с чем работал сервис на момент снимка: логины, пароли (иногда в открытом виде), важные ID и т.п. – словом, всяческие sensitive данные, которые не нужны для анализа, но могут навлечь на получателя дампа серьёзную ответственность и риски. Как этого избежать без ущерба делу – разбираемся под катом.

    habr.com/ru/companies/spring_a

    #jvm #heap #performance #security #leak

  3. Анализируем heap-дампы с прода, не привлекая внимания безопасников

    Heap-дампы JVM – бесценный источник информации при разборе аварий с OutOfMemory и оптимизации производительности. Но вместе с тем они же – потенциальные каналы утечки данных, ведь будучи снятыми с боевого сервиса, дампы уносят в себе всё, с чем работал сервис на момент снимка: логины, пароли (иногда в открытом виде), важные ID и т.п. – словом, всяческие sensitive данные, которые не нужны для анализа, но могут навлечь на получателя дампа серьёзную ответственность и риски. Как этого избежать без ущерба делу – разбираемся под катом.

    habr.com/ru/companies/spring_a

    #jvm #heap #performance #security #leak

  4. Анализируем heap-дампы с прода, не привлекая внимания безопасников

    Heap-дампы JVM – бесценный источник информации при разборе аварий с OutOfMemory и оптимизации производительности. Но вместе с тем они же – потенциальные каналы утечки данных, ведь будучи снятыми с боевого сервиса, дампы уносят в себе всё, с чем работал сервис на момент снимка: логины, пароли (иногда в открытом виде), важные ID и т.п. – словом, всяческие sensitive данные, которые не нужны для анализа, но могут навлечь на получателя дампа серьёзную ответственность и риски. Как этого избежать без ущерба делу – разбираемся под катом.

    habr.com/ru/companies/spring_a

    #jvm #heap #performance #security #leak

  5. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  6. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  7. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  8. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 2

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В первой части мы разобрали теоретическую базу того, как устроена память в Swift. Это вторая часть — здесь больше про код, типовые задачи и ошибки, а также способы их исправления. Если хотите подробнее разобрать память по полочкам, читайте далее.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #references

  9. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 1

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

  10. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 1

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

  11. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 1

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

  12. Как Swift работает с памятью: подробный гайд для разработчиков. Часть 1

    Всем привет! Я Данила Горячкин — iOS-инженер в команде Performance в Авито. Занимаюсь оптимизацией производительности iOS‑приложений и менторингом разработчиков. В этой статье последовательно разберем, как Swift управляет памятью: от базовых понятий вроде ARC, Copy‑on‑Write, экзистенциальных контейнеров до нетипичных задач с «зомби»-объектами и non-frozen типами. Материал основан на документации Swift, докладах WWDC и практических примерах. Статья рассчитана на middle- iOS‑разработчиков, которые хотят лучше понимать, что происходит с их кодом на уровне памяти и почему одни решения оказываются дороже других. Эта статья выйдет в двух частях: в первой разберем теорию, а во второй — практические примеры с кодом.

    habr.com/ru/companies/avito/ar

    #ios #swift #arc #memory #heap #reference_type #value_type #утечки_памяти #reference

  13. Du hast sicher schon erlebt, dass eine Variable „weg“ ist, sobald eine Methode fertig ist. Gleichzeitig scheinen Objekte manchmal ewig zu leben - bis plötzlich der Speicher knapp wird. Das ist kein Zufall, sondern hängt daran, *wo* Java Dinge ablegt. Wenn du Heap, Stack und Metaspace einmal sa

    magicmarcy.de/heap-stack-und-m

    #Heap #Stack #Metaspace #Lebensdauer #Speicher #Xms #Xmx #Xss #Programming #Java #JVM #Coding

  14. Du hast sicher schon erlebt, dass eine Variable „weg“ ist, sobald eine Methode fertig ist. Gleichzeitig scheinen Objekte manchmal ewig zu leben - bis plötzlich der Speicher knapp wird. Das ist kein Zufall, sondern hängt daran, *wo* Java Dinge ablegt. Wenn du Heap, Stack und Metaspace einmal sa

    magicmarcy.de/heap-stack-und-m

    #Heap #Stack #Metaspace #Lebensdauer #Speicher #Xms #Xmx #Xss #Programming #Java #JVM #Coding

  15. Du hast sicher schon erlebt, dass eine Variable „weg“ ist, sobald eine Methode fertig ist. Gleichzeitig scheinen Objekte manchmal ewig zu leben - bis plötzlich der Speicher knapp wird. Das ist kein Zufall, sondern hängt daran, *wo* Java Dinge ablegt. Wenn du Heap, Stack und Metaspace einmal sa

    magicmarcy.de/heap-stack-und-m

    #Heap #Stack #Metaspace #Lebensdauer #Speicher #Xms #Xmx #Xss #Programming #Java #JVM #Coding

  16. Du hast sicher schon erlebt, dass eine Variable „weg“ ist, sobald eine Methode fertig ist. Gleichzeitig scheinen Objekte manchmal ewig zu leben - bis plötzlich der Speicher knapp wird. Das ist kein Zufall, sondern hängt daran, *wo* Java Dinge ablegt. Wenn du Heap, Stack und Metaspace einmal sa

    magicmarcy.de/heap-stack-und-m

    #Heap #Stack #Metaspace #Lebensdauer #Speicher #Xms #Xmx #Xss #Programming #Java #JVM #Coding

  17. [Перевод] Выделение памяти в Go

    Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

    habr.com/ru/companies/timeweb/

    #go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча

  18. [Перевод] Выделение памяти в Go

    Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

    habr.com/ru/companies/timeweb/

    #go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча

  19. [Перевод] Выделение памяти в Go

    Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

    habr.com/ru/companies/timeweb/

    #go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча

  20. [Перевод] Выделение памяти в Go

    Эта статья посвящена языку программирования Go 1.24 , работающему на Linux на архитектуре ARM . Она может не охватывать специфические для других операционных систем (ОС) или аппаратных архитектур детали.

    habr.com/ru/companies/timeweb/

    #go #golang #memory_management #memory_allocation #stack #heap #timeweb_статьи_перевод #выделение_памяти #стек #куча

  21. Память в JavaScript: Stack и Heap

    Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили , но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой . Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкретного движка. Closure, захватывающий лишние данные. Event listener, который никогда не снимается. Объект, который непреднамеренно продлевает жизнь половине DOM дерева. Все это - настоящие ошибки, которые реально встречаются в проде и ни один линтер их не поймает. Чтобы замечать такие вещи при ревью, нужно понимать, как именно V8 хранит объекты и когда решает их удалить. Это не академическое знание - это инструмент, который меняет то, на что смотришь в коде. Эта серия состоит из трех частей. Первая - про то, как V8 вообще организует память, что такое Stack и Heap, чем они отличаются и что такое pointer. Вторая - про сборщик мусора, как он определяет, что живо, а что нет и как делает это, не останавливая программу надолго. Третья - практическое применение, откуда берутся утечки памяти, как их искать и как писать код, который не создает лишней работы для GC. Смотреть под капот

    habr.com/ru/articles/1003702/

    #v8 #javascript #память #garbage_collector_javascript #stack #heap #pointer #garbage_collector #nodejs #node

  22. Память в JavaScript: Stack и Heap

    Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили , но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой . Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкретного движка. Closure, захватывающий лишние данные. Event listener, который никогда не снимается. Объект, который непреднамеренно продлевает жизнь половине DOM дерева. Все это - настоящие ошибки, которые реально встречаются в проде и ни один линтер их не поймает. Чтобы замечать такие вещи при ревью, нужно понимать, как именно V8 хранит объекты и когда решает их удалить. Это не академическое знание - это инструмент, который меняет то, на что смотришь в коде. Эта серия состоит из трех частей. Первая - про то, как V8 вообще организует память, что такое Stack и Heap, чем они отличаются и что такое pointer. Вторая - про сборщик мусора, как он определяет, что живо, а что нет и как делает это, не останавливая программу надолго. Третья - практическое применение, откуда берутся утечки памяти, как их искать и как писать код, который не создает лишней работы для GC. Смотреть под капот

    habr.com/ru/articles/1003702/

    #v8 #javascript #память #garbage_collector_javascript #stack #heap #pointer #garbage_collector #nodejs #node

  23. Память в JavaScript: Stack и Heap

    Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили , но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой . Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкретного движка. Closure, захватывающий лишние данные. Event listener, который никогда не снимается. Объект, который непреднамеренно продлевает жизнь половине DOM дерева. Все это - настоящие ошибки, которые реально встречаются в проде и ни один линтер их не поймает. Чтобы замечать такие вещи при ревью, нужно понимать, как именно V8 хранит объекты и когда решает их удалить. Это не академическое знание - это инструмент, который меняет то, на что смотришь в коде. Эта серия состоит из трех частей. Первая - про то, как V8 вообще организует память, что такое Stack и Heap, чем они отличаются и что такое pointer. Вторая - про сборщик мусора, как он определяет, что живо, а что нет и как делает это, не останавливая программу надолго. Третья - практическое применение, откуда берутся утечки памяти, как их искать и как писать код, который не создает лишней работы для GC. Смотреть под капот

    habr.com/ru/articles/1003702/

    #v8 #javascript #память #garbage_collector_javascript #stack #heap #pointer #garbage_collector #nodejs #node

  24. Память в JavaScript: Stack и Heap

    Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого удобства есть обратная сторона, сгенерированный код работает правильно в смысле делает что просили , но не всегда правильно в смысле не течет по памяти и не роняет прод под нагрузкой . Модели хорошо знают синтаксис и паттерны. Они значительно хуже разбираются в том, что происходит под капотом конкретного движка. Closure, захватывающий лишние данные. Event listener, который никогда не снимается. Объект, который непреднамеренно продлевает жизнь половине DOM дерева. Все это - настоящие ошибки, которые реально встречаются в проде и ни один линтер их не поймает. Чтобы замечать такие вещи при ревью, нужно понимать, как именно V8 хранит объекты и когда решает их удалить. Это не академическое знание - это инструмент, который меняет то, на что смотришь в коде. Эта серия состоит из трех частей. Первая - про то, как V8 вообще организует память, что такое Stack и Heap, чем они отличаются и что такое pointer. Вторая - про сборщик мусора, как он определяет, что живо, а что нет и как делает это, не останавливая программу надолго. Третья - практическое применение, откуда берутся утечки памяти, как их искать и как писать код, который не создает лишней работы для GC. Смотреть под капот

    habr.com/ru/articles/1003702/

    #v8 #javascript #память #garbage_collector_javascript #stack #heap #pointer #garbage_collector #nodejs #node

  25. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  26. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  27. Kürzlich habe ich einen Artikel gelesen, in dem es um Fragen in einem Vorstellungsgespräch als Java-Entwickler ging. Es wurden einige Fragen vorgestellt und die These aufgestellt, dass die meisten Bewerber diese Fragen nicht beantworten können. Aus diesem Grund möchte ich ...

    magicmarcy.de/java-interview-f

    #Java-Interview #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  28. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  29. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  30. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  31. Garbage Collector от мала до велика или как создаются и отчищаются ваши объекты

    Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью, потоками, стеком, регистрами и графом ссылок, и без понимания этих взаимодействий невозможно осознанно писать высоконагруженные приложения. В этом материале мы сосредоточимся именно на GC, рассматривая его не как магию runtime, а как конкретный набор алгоритмов и инженерных компромиссов. За каждой строкой new, за каждой локальной переменной и за каждым вызовом функции стоит конкретная архитектура процессора, виртуальная память операционной системы и довольно агрессивная инженерная математика сборщика мусора. Чтобы действительно понимать GC, необходимо начать не с него, а с того, на чём он стоит — с регистров, стека и кучи, поскольку именно они формируют корневую модель, на которую опирается любой современный runtime. Перед тем как мы начнем давайте разберемся в типах хранилищ памяти и как они работают:

    habr.com/ru/articles/1002194/

    #GC #Сборка_мусора #performance #оптимизации #optimization #green_tea #stackoverflow #span #heap #jit

  32. You don’t miss a Corelan class by accident.
    You choose to.
    Or not.

    You’re just a few clicks away from changing how you think:
    👉 corelan-training.com
    👉 corelan-certified.com

    #corelan #stack #heap #cced

  33. You don’t miss a Corelan class by accident.
    You choose to.
    Or not.

    You’re just a few clicks away from changing how you think:
    👉 corelan-training.com
    👉 corelan-certified.com

    #corelan #stack #heap #cced

  34. You don’t miss a Corelan class by accident.
    You choose to.
    Or not.

    You’re just a few clicks away from changing how you think:
    👉 corelan-training.com
    👉 corelan-certified.com

    #corelan #stack #heap #cced

  35. Осознанная стоимость абстракций: Autoboxing в современной Java

    Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются как best practices. Но не все коту масленица. Благодаря AI - буму, облачным вычислениям и микросервисной архитектуре с сотнями одновременно работающих инстансов, мы можем воочию наблюдать неукротимый рост стоимости оперативной памяти, что обязывает вернуться к рассмотрению принципов её экономии. В этих условиях привычные абстракции требуют переоценки. Сегодня я хочу напомнить об одной из самых распространенных в Java — autoboxing — механизме автоматической упаковки примитивных типов в соответствующие объекты-обертки. Приглашаю вас посмотреть на знакомый Java-код не глазами разработчика, а глазами JVM, сборщика мусора и процессора, и разобраться, как незаметные на уровне синтаксиса решения превращаются в аллокации, давление на GC и раздувание heap. Погрузиться

    habr.com/ru/articles/985620/

    #Java #boxing #оптимизация #оптимизация_кода #JVM #Autoboxing #Heap

  36. Осознанная стоимость абстракций: Autoboxing в современной Java

    Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются как best practices. Но не все коту масленица. Благодаря AI - буму, облачным вычислениям и микросервисной архитектуре с сотнями одновременно работающих инстансов, мы можем воочию наблюдать неукротимый рост стоимости оперативной памяти, что обязывает вернуться к рассмотрению принципов её экономии. В этих условиях привычные абстракции требуют переоценки. Сегодня я хочу напомнить об одной из самых распространенных в Java — autoboxing — механизме автоматической упаковки примитивных типов в соответствующие объекты-обертки. Приглашаю вас посмотреть на знакомый Java-код не глазами разработчика, а глазами JVM, сборщика мусора и процессора, и разобраться, как незаметные на уровне синтаксиса решения превращаются в аллокации, давление на GC и раздувание heap. Погрузиться

    habr.com/ru/articles/985620/

    #Java #boxing #оптимизация #оптимизация_кода #JVM #Autoboxing #Heap

  37. Осознанная стоимость абстракций: Autoboxing в современной Java

    Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются как best practices. Но не все коту масленица. Благодаря AI - буму, облачным вычислениям и микросервисной архитектуре с сотнями одновременно работающих инстансов, мы можем воочию наблюдать неукротимый рост стоимости оперативной памяти, что обязывает вернуться к рассмотрению принципов её экономии. В этих условиях привычные абстракции требуют переоценки. Сегодня я хочу напомнить об одной из самых распространенных в Java — autoboxing — механизме автоматической упаковки примитивных типов в соответствующие объекты-обертки. Приглашаю вас посмотреть на знакомый Java-код не глазами разработчика, а глазами JVM, сборщика мусора и процессора, и разобраться, как незаметные на уровне синтаксиса решения превращаются в аллокации, давление на GC и раздувание heap. Погрузиться

    habr.com/ru/articles/985620/

    #Java #boxing #оптимизация #оптимизация_кода #JVM #Autoboxing #Heap

  38. Осознанная стоимость абстракций: Autoboxing в современной Java

    Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются как best practices. Но не все коту масленица. Благодаря AI - буму, облачным вычислениям и микросервисной архитектуре с сотнями одновременно работающих инстансов, мы можем воочию наблюдать неукротимый рост стоимости оперативной памяти, что обязывает вернуться к рассмотрению принципов её экономии. В этих условиях привычные абстракции требуют переоценки. Сегодня я хочу напомнить об одной из самых распространенных в Java — autoboxing — механизме автоматической упаковки примитивных типов в соответствующие объекты-обертки. Приглашаю вас посмотреть на знакомый Java-код не глазами разработчика, а глазами JVM, сборщика мусора и процессора, и разобраться, как незаметные на уровне синтаксиса решения превращаются в аллокации, давление на GC и раздувание heap. Погрузиться

    habr.com/ru/articles/985620/

    #Java #boxing #оптимизация #оптимизация_кода #JVM #Autoboxing #Heap

  39. @magicmarcy
    Ich hatte das letzte Mal vor 12 Jahren meine Finger zum Coden an der Tastatur.
    Bei den ersten drei Fragen musste ich schmunzeln... und dann konnte ich nur noch eine einzige Frage beantworten... halbwegs.
    Ich wusste bei allem noch was, aber hätte nicht mehr in die Details gehen können.

    Hach, waren das Zeiten! 🥲

    #Java #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC

  40. @magicmarcy
    Ich hatte das letzte Mal vor 12 Jahren meine Finger zum Coden an der Tastatur.
    Bei den ersten drei Fragen musste ich schmunzeln... und dann konnte ich nur noch eine einzige Frage beantworten... halbwegs.
    Ich wusste bei allem noch was, aber hätte nicht mehr in die Details gehen können.

    Hach, waren das Zeiten! 🥲

    #Java #Grundlagen #JDK #JRE #abstrakte_Klasse #Interface #final #finally #finalise #stack #heap #private #protected #super #Garbage_Collector #GC