gpt4 book ai didi

asp.net - 内存不足异常

转载 作者:行者123 更新时间:2023-12-02 07:52:56 28 4
gpt4 key购买 nike

我有一个非常耗费内存的应用程序。它在一些大数组中保存大量数据。

我最近注意到偶尔会出现 OutOfMemoryException。这些 OutOfMemoryExceptions 发生在我的应用程序 (ASP.Net) 用完可用的 800mb 之前很久。我已将问题追踪到调整数组大小的代码区域。该数组包含一个大小为 74 字节的结构。 (我知道您不应该创建大于 16 字节的结构),但此应用程序是 Vb6 应用程序的端口)。我已尝试将结构更改为一个类,这似乎暂时解决了问题。

我认为之所以改成类解决了问题,是因为在使用struct并且调整数组大小时,需要保留一段足够大的内存来存储新数组(例如 (currentArraySize + increaseBySize)*74) 找不到。这会导致 OutOfMemoryException。

类不是这种情况,因为数组的每个元素只需要 8 个字节来存储指向新对象的指针。

我的想法对吗?

最佳答案

您关于数组存储方式的假设是正确的。从 struct 更改为 class 会给每个实例增加一些开销,并且您将失去局部性的优势,因为所有数据都必须通过引用收集,但正如您所观察到的那样,它现在可能会解决您的内存问题。

关于asp.net - 内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2590840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com