【发布时间】:2011-10-22 21:42:50
【问题描述】:
我想计算整个程序中为特定方法分配的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 之间使用的内存。
私有内存:System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64 / 1024 工作集内存:System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / 1024 分配的内存:GC.GetTotalMemory(false) / 1024
【问题讨论】:
-
抱歉,您的问题不是很清楚。你想做什么,为什么?您几乎可以测量所有内容,但您的答案应该更具体,以便获得我们的帮助。
-
您要使用工具还是以编程方式执行此操作?
-
为问题添加了更多详细信息。我正在以编程方式执行此操作。
-
不能使用分析器有什么原因吗?它们就是为这种分析而设计的。
-
为什么你认为一个方法可以自己消耗内存?除非您只关心在该方法中声明的局部变量,否则我认为分配给方法的内存不是很有意义,我理解方法运行时的 cpu 使用情况...