关于.net:确定一个类使用多少内存?

关于.net:确定一个类使用多少内存?

Determine how much memory a class uses?

我试图找到一种在运行时确定.NET中给定类正在使用多少内存的方法。 使用Marshal.SizeOf()已用完,因为它仅适用于值类型。 有没有一种方法可以检查一个类使用了多少内存?


我只是最近才开始研究这类事情,但是我发现内存分析器可以提供有关应用程序中对象实例的相当详细的信息。

这是一对值得尝试的夫妇:

  • 蚂蚁探查器
  • .NET内存探查器

只需链接到相关的SO问题:

  • sizeof()是否等效于引用类型?

我同意内存分析器是获取所需信息的最简单方法。除了前面提到的两个之外,我还建议同时使用JetBrains dotTrace,它既是性能分析器又是内存分析器。

如果您想自己做,并且愿意深入了解CLR的精髓,则可以使用.NET Profiling API,它是一种非托管API(如Microsoft所述):"使探查器能够监视公用语言运行时(CLR)执行程序。"它不完全适合休闲使用,但确实具有大量功能。


推荐阅读

    linux下并行运行命令?

    linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

    linux怎么看内存命令?

    linux怎么看内存命令?,系统,情况,信息,命令,内存,工具,发行,数据,表示,内容,l

    linux中看栈内存命令?

    linux中看栈内存命令?,系统,情况,信息,地址,数据,分析,命令,内存,工具,环境,l

    linux进程运行命令?

    linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,lin

    linux检查挂载命令?

    linux检查挂载命令?,设备,系统,信息,情况,状态,服务,软件,命令,磁盘,网络,lin

    linux活动内存命令?

    linux活动内存命令?,系统,情况,信息,命令,地方,地址,电脑,工具,位置,单位,详

    linux显示运行命令?

    linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如

    linux使用命令的方法?

    linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,

    linux运行vim命令?

    linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令

    linux监控命令运行?

    linux监控命令运行?,系统,工作,地址,信息,工具,情况,标准,环境,命令,状态,lin

    linux中命令停止运行?

    linux中命令停止运行?,系统,代码,第一,命令,进程,指令,程序,方法,接线,硬盘,l

    linux一般检查命令?

    linux一般检查命令?,网络,系统,检测,情况,工作,信息,命令,进程,时间,设备,lin

    检查硬件linux命令?

    检查硬件linux命令?,信息,系统,第一,数据,设备,检测,命令,情况,灵活,实时,如

    linux自动运行命令?

    linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,l

    linux开启运行命令?

    linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,lin

    linux运行wps命令?

    linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps

    linux运行cmd命令?

    linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑

    linux的查看内存命令?

    linux的查看内存命令?,情况,系统,信息,电脑,状态,工具,内存,命令,数据,总量,L

    linux运行两个命令?

    linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Lin

    linux下内存调整命令?

    linux下内存调整命令?,系统,情况,地址,工具,总量,总额,管理,内存,机制,内核,