Предсказание размера в памяти словаря в Swift
Как-то задокументировано, сколько памяти будет точно использовать словарь в Swift, учитывая количество элементов, которые он будет содержать?
Я искал ответ, но вся информация, которую я нашел по этой теме, расплывчата. Я также пытался понять это самостоятельно, читая исходный код Swift, но это слишком сложно для меня.
1 ответ
Вы можете проверить декларациюDictionary
, Это довольно большой файл, но, посмотрев на него некоторое время, я считаю, что количество байтов, используемых словарем, соответствует следующим ограничениям:
bytes > (strideof(Key) + strideof(Value)) * 4/3 * capacity
bytes is a power of 2
Я не уверен на 100%, потому что трудно понять источник, не написав его сам. Посмотрите здесь, здесь, здесь и здесь. Возможно, это можно скомпилировать самостоятельно и поставить prints
всякий раз, когда размер изменяется, но я не могу быть обеспокоен, чтобы сделать это. Зачем вам нужен его размер?