具体来说,我对速度感兴趣。如果我从字典中删除一个条目,它会立即重新分配字典使用的空间吗?将值设置为空会更快吗?
如果您delete!
是字典中的条目,则不会重新分配它。实际上字典目前不支持缩小(甚至empty!
不缩小) - 它只能在需要时增长。
这意味着您已向 dict 添加了大量条目,然后将其删除,然后有时将这些剩余元素逐个元素复制到新的字典中会节省内存(但不使用,copy
因为它会创建具有内存占用的副本)与来源相同)。
但是请注意,如果键或值不是位类型,那么从字典中删除条目将删除对它的引用(这意味着如果没有其他引用,Julia 将能够垃圾收集它们)。