【问题标题】:Get information about RAM during the run of a program在程序运行期间获取有关 RAM 的信息
【发布时间】:2024-11-14 07:40:01
【问题描述】:

我有两种方法。我想测试一下它的性能。

我可以用秒表得到它的工作时间。但是如何获取有关 RAM 的信息?是否有任何类?

或者我必须手动从任务管理器中获取它?(停止程序+运行tm+继续程序)

【问题讨论】:

标签: c#


【解决方案1】:

你在寻找

Process.GetCurrentProcess().WorkingSet64

【讨论】:

  • Process.PagedMemorySize64 和 Process.PrivateMemorySize64 有什么区别(*.com/questions/463595/… 接受的答案和替代建议)?
  • @EricJ:我不好意思承认我不知道。
【解决方案2】:

查看 Jon Skeet 关于类似主题的博客 - http://msmvps.com/blogs/jon_skeet/archive/2011/04/05/of-memory-and-strings.aspx

基本用GC.GetTotalMemory

  long before = GC.GetTotalMemory(true);
    // do something 
  long after = GC.GetTotalMemory(true);

  Console.WriteLine("Diff:{0}" after - before;);

请注意,TaskManager 显示分配了多少内存进程,您想查看 CLR 在特定点为活动对象分配了多少内存。

【讨论】:

    最近更新 更多