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

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

https://habr.com/ru/companies/avito/articles/1017248/

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

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

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

Хабр

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

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

https://habr.com/ru/companies/avito/articles/1017162/

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

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

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

Хабр

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

https://magicmarcy.de/heap-stack-und-metaspace-warum-variablen-verschwinden-und-objekte-nicht

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

Heap, Stack und Metaspace - Warum Variablen verschwinden und Objekte nicht | magicmarcy.de

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 sauber auseinanderhalten kannst, werden viele typische Anfänger-Fragezeichen (und einige nervige Fehler) deutlich kleiner.

magicmarcy.de

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

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

https://habr.com/ru/companies/timeweb/articles/1000232/

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

Выделение памяти в Go

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

Хабр

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

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

https://habr.com/ru/articles/1003702/

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

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

Последние пару лет изменили то, как пишется код. Copilot, Cursor, ChatGPT, Claude - все это генерирует вполне работающий JavaScript быстрее, чем успеваешь сформулировать задачу. Это удобно. Но у этого...

Хабр
Wednesday Links - Edition 2026-02-25

Dissecting the CPU-Memory Relationship in Garbage Collection (15...

DEV Community

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 ...

https://magicmarcy.de/java-interview-fragen-1-java-grundlagen

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

Java Interview-Fragen: #1 Java Grundlagen | magicmarcy.de

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 in dieser Serie auf diese Java Fragen im Vorstellungsgespräch eingehen und sie beantworten.

magicmarcy.de

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

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

https://habr.com/ru/articles/1002194/

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

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

Когда мы говорим о сборщике мусора, мы часто ограничиваемся фразой «он удаляет неиспользуемые объекты», однако в реальности GC — это сложнейшая система, которая взаимодействует с виртуальной памятью,...

Хабр

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:
👉 https://www.corelan-training.com
👉 https://www.corelan-certified.com

#corelan #stack #heap #cced

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

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

https://habr.com/ru/articles/985620/

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

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

Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются...

Хабр