0

我在 .NET 4.6.1 上有一个 Web 应用程序,内存消耗非常大。我开始使用 dotMemory 进行调查以尝试识别可能的问题,我看到很多碎片 LOH 快照

所以现在在阅读了stackoverflow上的一些线程之后,我理解了那个字符串数组会产生这种问题,所以我尝试找到一个解决方案或一种方法来找到我的代码将在哪里产生这个问题。

使用 dotMemory 我看到很多实例都与 堆栈内存

如果我在内部查看一些字符串,我会看到一个 SQL 查询,但我找不到一种方法来了解它将在哪里生成。

在此处输入图像描述 在字符串中,我发现了一个大查询(或多或少)1500 行。

现在我没有找到减少这种碎片的方法。

- 更新

我在 Gen0、1、2 和 LOH 的内存转储上添加了 2 个带有对象数量的 snapshop。查看对象,我看到来自 EF(Sql 语句)的大量查询,其中包含 1000 多行和更多的 85000 个字符。

我在 MVC 上的缩小过程中发现了内存碎片 raletad 的其他问题,但只覆盖了一小部分内存

内存和对象 内存转储

4

0 回答 0