![]() |
1
0
为什么不启动一个商用内存分析器(都有免费试用版)这样 MemProfiler ,比较两个快照并查看内存的去向。 如果没有看到代码,很难判断是否存在内存泄漏。 |
![]() |
2
1
它似乎正在将整个列数据(在我的例子中包括一个大的二进制列数据)加载到内存中。数据一直保存到“范围”结束(例如内容超出范围)。在循环过程中,一些数据在垃圾收集中幸存下来,并被提升到下一代,这会导致保留期更长(在我的例子中,大约10分钟后会释放内存)。 我试过各种各样的方法,但我认为这只是我们必须接受的一种行为。 在我的特殊情况下,我使用二进制序列化将对象状态保存到数据库中。我还没有解决这个问题,但是我减少内存使用峰值的解决方法是重构代码,这样我就不用二进制序列化了,而是将原始数据保存到数据库表列中,并简单地将值赋给代码中的对象。下一个修复级别是使用“惰性初始化”,然后是缓存等。 在站点地图中,也许可以“分段”视图并只加载节点的子集。 |
![]() |
Peter · 种子列表导致EF核心为空 2 年前 |
![]() |
Mark Fleming · 实体框架6代码优先-多个模型/配置 6 年前 |
![]() |
Jano CL · 实体类型的预期值,改为“整数”。类型失败 6 年前 |
![]() |
PaweÅ Babilas · 管理聚合实体(DDD) 6 年前 |
![]() |
Boris Dabetic · 实体LINQ查询变慢 6 年前 |