程序中方法的进程细节(CPU时间,分配的内存)

本文关键字:时间 分配 CPU 内存 方法 进程 细节 程序 | 更新日期: 2023-09-27 18:12:10

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

程序在从磁盘上获取值/信息时如何访问二级存储器

我试图使线程和方法运行创建的线程,但它没有工作。它给出了整个过程的信息。我正在寻找一个特定的方法。

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

ok。我正在写一个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之间的内存使用。

私有内存:System.Diagnostics.Process.GetCurrentProcess()。privatemmemorysize64/1024工作集内存:System.Diagnostics.Process.GetCurrentProcess()WorkingSet64/1024已分配内存:GC.GetTotalMemory(false)/1024

程序中方法的进程细节(CPU时间,分配的内存)

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

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

使用过程。TotalProcessorTime表示CPU时间。