垃圾回收器 —— 获取内存

本文介绍了如何使用GC.GetTotalMemory方法来检查应用程序的内存使用情况,并通过创建一个大数组前后对比内存变化,展示了内存占用的增长。此外,还介绍了如何利用Process类获取更详细的进程内存信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GC类包含了一些内存的相关方法,包括GetTatalMemory方法,这个方法返回垃圾回收器(Garbage Collector)分配给你的应用程序的内存数量。由于有些对象并没有被垃圾回收器收集,所以结果可能存在一些偏差。

long available = GC.GetTotalMemory(false);
Console.WriteLine(“Before allocations: {0:N0}”, available);
int allocSize = 40000000;
byte[] bigArray = new byte[allocSize];
available = GC.GetTotalMemory(false);
Console.WriteLine(“After allocations: {0:N0}”, available);

结果:

Before allocations: 651,064
After allocations: 40,690,080

也可以从操作系统角度查看程序使用了多少内存:

// Process类在System.Diagnostics名字空间中
Process proc = Process.GetCurrentProcess();
Console.WriteLine("Process Info: "+Environment.NewLine+
"Private Memory Size: {0:N0}"+Environment.NewLine +
"Virtual Memory Size: {1:N0}" + Environment.NewLine +
"Working Set Size: {2:N0}" + Environment.NewLine +
"Paged Memory Size: {3:N0}" + Environment.NewLine +
"Paged System Memory Size: {4:N0}" + Environment.NewLine +
"Non-paged System Memory Size: {5:N0}" + Environment.NewLine,
proc.PrivateMemorySize64,
proc.VirtualMemorySize64,
proc.WorkingSet64,
proc.PagedMemorySize64,
proc.PagedSystemMemorySize64,
proc.NonpagedSystemMemorySize64 );


 


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值