iOS Broadcast
3.38K subscribers
1.72K photos
85 videos
985 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
加入频道
Swift не дает никаких гарантий, где хранятся объекты и структуры, за исключением того, что:

- Reference типы имеют постоянное расположение в памяти
- Расположение Value типов может быть изменено по усмотрению компилятора

Оптимизация Value типов выглядит следующим образом:
- При работа с небольшими структурами компилятор может поместить их в регистры и вообще не выделять место в куче. Это касается простых Int и Double, которые гарантированно помещаются в регистры
- Структуры размером более 3 машинных слов (24 байта на 64-битной машине) могут быть аллоцированы в куче.

Это не противоречит поведению Value типов. Их по-прежнему можно произвольно копировать и компилятор хорошо справляется с избеганием ненужных выделений памяти там, где это возможно.

Детально это раскрывается в лекции Understanding Swift Performance
Актуальную реализацию можно посмотреть в SIL файле Swift

#Swift #MemoryLayout
👍15👎1