大佬教程收集整理的这篇文章主要介绍了delphi – 如何通过不断增长的TDictionary避免内存不足?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
newCap := Length(FItems) * 2; if newCap = 0 then newCap := 4; Rehash(newCap);
这适用于中等数量的项目,但如果达到上限,则非常不幸,因为即使几乎有一半的内存仍然可用,它也可能抛出EOutOfMemory异常.
有没有办法影响这种行为?其他集合类如何处理这种情况?
@R_944_11162@行为,使字典在完整时不重新分配的唯一方法是确保它永远不会满.如果您知道将在字典中插入的项目数将其作为参数传递给构造函数,您将完成,不再需要字典重新分配.
如果你不能这样做(你不知道你在字典中会有多少项),你需要重新考虑是什么让你首先选择TDictionary并选择一个提供更好折衷的数据结构为您的特定算法.例如,您可以使用二叉搜索树,因为它们通过在现有节点中旋转信息来进行平衡,无需重新分配.
以上是大佬教程为你收集整理的delphi – 如何通过不断增长的TDictionary避免内存不足?全部内容,希望文章能够帮你解决delphi – 如何通过不断增长的TDictionary避免内存不足?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。