预测Swift中Dictionary的内存大小

时间:2016-07-03 09:43:13

标签: swift dictionary memory-footprint

它是否以某种方式记录了在Swift中将使用Dictionary的多少内存,考虑到它将包含的元素数量?

我一直在寻找答案,但我在这个主题上发现的所有信息都含糊不清。我也试着通过阅读Swift的源代码来解决这个问题,但这对我来说太复杂了。

1 个答案:

答案 0 :(得分:1)

您可以查看declaration of Dictionary。它是一个非常大的文件,但在查看它一段时间后,我相信字典使用的字节数遵循这些约束:

bytes > (strideof(Key) + strideof(Value)) * 4/3 * capacity
bytes is a power of 2

我不是百分百肯定的,因为如果没有自己编写来源,它很难理解来源。查看herehereherehere。可能它可以自己编译并在大小改变时放置prints,但我不能为此而烦恼。为什么你需要它的大小?