gpt4 book ai didi

c# - 程序中方法的进程详细信息(CPU 时间、分配的内存)

转载 作者:行者123 更新时间:2023-11-30 18:40:41 25 4
gpt4 key购买 nike

我想计算整个程序中为特定方法分配的CPU 时间和内存。我能够获得完整程序的 CPU 时间和内存。如何获取特定方法的详细信息。

还有如何在从磁盘获取值/信息的同时让磁盘访问对辅助存储所做的程序。

我尝试创建线程并让创建的线程运行该方法,但没有成功。它给出了完整过程的信息。我正在寻找一种特定的方法。

添加更多细节希望这有助于理解问题。

好的。我正在写 C# 代码

public class Program
{
public static void Main(string[] args)
{
**checkPoint_1_start**
//
// Some code here
//
**checkPoint_2_start**

calling_Method();

**checkPoint_2_end**
//
// Some code here
//

**checkPoint_1_end**
}

public void calling_Method()
{
//
// Code of this method is very long and contains many variables.
//
}
}

我能够找到从 checkPoint_1_start 到 checkPoint_1_end 使用的内存。我想知道如何找到仅在 checkPoint_2_start 和 checkPoint_2_end 之间使用的内存。

我正在使用下面的东西来查找内存使用的详细信息,它给出了从 checkPoint_1_start 到 checkPoint_1_end 的整个过程。如何获取在 checkPoint_2_start checkPoint_2_end 之间使用的内存。

私有(private)内存:System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64/1024工作集内存:System.Diagnostics.Process.GetCurrentProcess().WorkingSet64/1024分配的内存:GC.GetTotalMemory(false)/1024

最佳答案

在 checkPoint_2_start checkPoint_2_end(或您需要的指标的任何其他函数)处使用 GC.GetTotalMemory(false)。这两个检查点之间使用的额外内存量是 checkPoint_2_end 返回的值减去 checkPoint_2_start 返回的值。

如果您只想要单个线程的内存使用情况,我认为您不能这样做。您将不得不以某种方式跟踪所有分配。

使用 Process.TotalProcessorTime 作为 CPU 时间。

关于c# - 程序中方法的进程详细信息(CPU 时间、分配的内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7862806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com