程序中方法的进程细节(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
使用GC.GetTotalMemory(false)在checkPoint_2_start checkPoint_2_end(或任何其他函数您需要的度量)。在这两个检查点之间使用的额外内存量等于在checkPoint_2_end返回的值减去在checkPoint_2_start返回的值。
如果你只想要单个线程的内存使用,我认为你不能这样做。你必须以某种方式跟踪你所有的分配。
使用过程。TotalProcessorTime表示CPU时间。