.NET 应用程序内存使用量 - 未使用的 .NET 和非托管内存和碎片较多

2024-04-01

我正在使用 ANTS 内存分析器来诊断我的 .NET 2.0 应用程序之一中遇到的内存泄漏增加情况。 我在 7.5 小时内拍摄了该过程的 7 个快照,以下是所获得数据的表格表示形式 -

G1代表1代尺寸,G2代表2代尺寸。除了非托管空间和私有字节之外,所有其他值均以 MB 为单位。

我的问题是 -

  1. 即使堆大小很小,为什么仍存在如此高的未使用 .NET 空间?

  2. 我的大对象堆最大达到约 2 MB,并且在最近 3 个快照期间保持在 96 KB。那么为什么会有如此高的大碎片,它们是否造成了高未使用空间呢?

  3. 未管理的空间不断增加。这是否会导致私有字节随着时间的推移而增加?

我对解决这个问题束手无策,并进行了多次分析,但找不到合适的解决方案。我准备提供所需的任何其他数据。


正如 Alex 已经指出的那样,对大对象堆碎片问题类的一个非常好的解释可以在这里找到:

https://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/ https://www.simple-talk.com/dotnet/.net-framework/the-dangers-of-the-large-object-heap/

该问题在 .NET FX 开发团队中众所周知,并且一直在努力解决。 使用最新的 FX 版本后,这些症状很可能会消失。

从 .NET 4.5.1 开始,将有一个 GC 方法调用来压缩 LOH:http://blogs.msdn.com/b/mariohewardt/archive/2013/06/26/no-more-memory-fragmentation-on-the-large-object-heap.aspx http://blogs.msdn.com/b/mariohewardt/archive/2013/06/26/no-more-memory-fragmentation-on-the-large-object-heap.aspx然而,找到 LOHF 的根本原因比仅仅擦除堆中浪费大量毫秒的效率要高得多

如果您需要有关如何隔离此类影响的更多详细信息,请告诉我。

Seb

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 应用程序内存使用量 - 未使用的 .NET 和非托管内存和碎片较多 的相关文章

随机推荐

  • Oracle 处理很长的 IN 运算符列表的效率如何

    我有以下查询 这是一个更复杂的查询的简化版本 SELECT FROM TPM TASK WHERE PROJECTID VERSIONID IN 3 1 24 1 4 1 在代码中我将构建它 PROJECTID VERSIONID 以编程方
  • 对 PictureBox 的透明控制

    在我的 C 表单中 我有一个标签 显示下载事件中的下载百分比 this lblprg Text overallpercent ToString 0 Label 控件的 BackColor 属性设置为透明 我希望它显示在 PictureBox
  • Haswell 微架构在性能中没有停滞周期后端

    我在 Haswell CPU Intel Core i7 4790 上安装了 perf 但 性能列表 不包括 stalled cycles frontend 或 stalled cycles backend 我检查了http www int
  • 用底部三角形制作div

    我一直在努力做白色形状与一个div http sircat net joomla sircat mies 2 png http sircat net joomla sircat mies 2 png 如何获得 div 底部的对角线形状 我有
  • 在 JSON.NET 中序列化/反序列化字节数组

    我有一个具有以下属性的简单类 JsonObject MemberSerialization OptIn public class Person JsonProperty PropertyName Photograph public byte
  • 纯Python XSLT 库

    有没有纯Python 的XSLT 库 在我需要支持的某些平台上安装 libxml2 libxslt 或任何类似的 C 库是一个问题 我确实只需要基本的 XSLT 支持 速度不是主要问题 不幸的是 目前还没有纯 python XSLT 处理器
  • 提供语言服务的问题

    我发现了两种在互联网上提供语言服务的方法 第一种方式 http msdn microsoft com fr fr library vstudio bb166498 28v vs 110 29 aspx涉及使用IOleComponentMan
  • 将 Android 应用程序连接到远程数据

    谢什谈论的信息有限 我正在尝试让我的 Android 应用程序连接到在线数据库以访问信息 有相当多的信息 包括地理标签 这些信息将映射到我的应用程序上 开发者网站有非常丰富的信息 您可以使用网络 如果可用 在您自己的基于 Web 的服务上存
  • 将 PDF 表单数据接收到 PHP 中

    所以我在网上寻找了几个小时 我认为这是一个非常简单的答案 但我似乎找不到它 我试图了解 PDF 表单数据提交的工作原理 我的目标是读取从我设置到 PHP 脚本中的 PDF 表单提交的表单数据 我希望我的 PHP 脚本能够解析表单数据并将其插
  • Django 管理错误“WSGIRequest”对象没有属性“用户”

    我正在练习 Django 当我尝试去http localhost admin http localhost admin 我收到以下错误 我已检查 settings py 并且 MIDDLEWARE CLASSES 确实存在 是否还有其他原因
  • Apache NiFi 用于将数据从 RDMBS 导入到 HDFS - 与 SQOOP 的性能比较

    我们正在探索 Apache NiFi 作为满足我们企业需求的通用数据摄取工具 一种典型的数据摄取要求是从 RDBMS 移动数据 系统到 HDFS 我能够使用 NiFi 提供的GenerateTableFetch 和 ExecuteSQL 处
  • 混洗两个 __m128i 的 64 位部分的最佳方法

    我有两个 m128is a and b 我想进行洗牌 以便高 64 位a落在低 64 位dst和低 64 位b落在上64dst i e dst 0 63 a 64 127 dst 64 127 b 0 63 相当于 m128i dst mm
  • 使用 SPI 接口初始化 microSD 卡

    我正在使用一个microSD http en wikipedia org wiki Secure Digital Physical size卡采用嵌入式设计 该卡使用 SPI 接口连接到微控制器 它适用于我以前使用过的所有卡 但现在我的新卡
  • 具有负载平衡的高负载服务器,使用 WCF 和 MSMQ

    目前我正在开发一个空间数据处理服务器 以下是要求 服务器必须能够每秒接收和处理大约 150 200 条小消息 GPS 修复 一些附加数据 它必须是可扩展的 例如在多台机器上运行并平衡负载本身 没有nlb 目前我已经测试了这种架构 传入消息服
  • HTML 预处理器?

    是否有一个 HTML 预处理器可以进行类似的简单页面处理服务器端包括 http en wikipedia org wiki Server Side Includes 但是生成一组静态 HTML 页面 我认为它们被称为预处理器 http ht
  • ng-focus 和 ng-blur 不适用于选择 DOM

    首先 我创建一个简单的示例来查看 ng focus 和 ng blur 是否在 select 上拖动 然后是我的实际代码 我找不到为什么第二个不起作用 div div
  • 使用“灵活”类型参数与泛型类型进行模式匹配

    match value with list lt SomeType gt as l gt l Is it possible to match any list of a type derived from SomeType gt failw
  • 将 system.windows.forms 与 XNA 结合使用

    我正在制作一个使用 XNA 的游戏 我想向游戏添加一些内容 例如按钮 文本框 标签 工具提示文本以及 system windows forms 附带的其他内容 如何将 system windows forms 与 XNA 合并 我可以实现任
  • ubuntu 找不到系统 Java 编译器。确保您已安装 JDK(不仅仅是 JRE)

    在ubuntu 12上 我尝试运行fuse jna的示例程序 我收到以下错误消息 syed ubuntu Downloads fuse jna master examples hellofs sh hellofs compileJava F
  • .NET 应用程序内存使用量 - 未使用的 .NET 和非托管内存和碎片较多

    我正在使用 ANTS 内存分析器来诊断我的 NET 2 0 应用程序之一中遇到的内存泄漏增加情况 我在 7 5 小时内拍摄了该过程的 7 个快照 以下是所获得数据的表格表示形式 G1代表1代尺寸 G2代表2代尺寸 除了非托管空间和私有字节之