首页 > 解决方案 > 在 Julia,如果我删除!字典中的键和值,它会重新分配字典吗?

问题描述

具体来说,我对速度感兴趣。如果我从字典中删除一个条目,它会立即重新分配字典使用的空间吗?将值设置为空会更快吗?

标签: julia

解决方案


如果您delete!是字典中的条目,则不会重新分配它。实际上字典目前不支持缩小(甚至empty!不缩小它) - 它只能在需要时增长。

这意味着您已经向 dict 添加了很多条目,然后将它们删除,然后有时将这些剩余元素逐个元素复制到新字典中会节省内存(但不使用copy,因为它会创建具有内存占用的副本,即与来源相同)。

但是请注意,如果键或值不是位类型,则从字典中删除条目将删除对它的引用(这意味着如果没有其他对它们的引用,Julia 将能够垃圾收集它们)。


推荐阅读