Size: a a a

2021 May 05

D

Dmitry in SwiftBook
окей, стек специальная область памяти и куча, специальная область памяти
источник

D

Dmitry in SwiftBook
почемсу часть данных лежит в стеке а остальное в кучея
источник

АО

Антон Осадчий... in SwiftBook
Стек является стеком потому что это единственный способ контролировать порядок вызовов
источник

АО

Антон Осадчий... in SwiftBook
А куча неупорядочена, там никаких вызовов нет, там просто данные
источник

АО

Антон Осадчий... in SwiftBook
В стеке тоже есть данные, но для обслуживания текущих вызовов и только вещественные, которые могут быть там расположены за счет вычисляемости своего размера
источник

D

Dmitry in SwiftBook
А классы в свифте мы рандомим по размеру?
источник

D

Dmitry in SwiftBook
Почему часть данных в стеке остальнок в куче? Рандомим? Мол ты вася в куче, а ты петя в стеке?
источник

S

Slava in SwiftBook
Если заранее знаем размер, то можем в стек положить, иначе всегда в кучу
источник

АО

Антон Осадчий... in SwiftBook
я не знаю как в свифте, но по ссылке на класс в дотнете я не могу узнать размер экземпляра класса
источник

K

KurKing in SwiftBook
так все типы данных имеют заранее известный размер
источник

D

Dmitry in SwiftBook
т.е размер класса
class Test {
   var name: String
}
мы не знаем?
источник

K

KurKing in SwiftBook
класса нет
источник

K

KurKing in SwiftBook
обьекта да
источник

K

KurKing in SwiftBook
кстати стоп
источник

K

KurKing in SwiftBook
не знаем
источник

АО

Антон Осадчий... in SwiftBook
стринг — тоже класс же, тогда надо еще и размер поля узнать
источник

K

KurKing in SwiftBook
строка под капотом это еррей лист
источник

K

KurKing in SwiftBook
а размер еррей листа меняется
источник

D

Dmitry in SwiftBook
окей, тогда почему
struct Test {
   var name: String
}
в 99% будет лежать в стеке


а
class Test {
   var name: String
}
на 100% в куче7
источник

S

Slava in SwiftBook
1% что не влезет в стек, классы всегда в куче
источник