如何获取Delphi程序的CPU时间?

时间:2015-03-25 09:12:29

标签: delphi debugging time delphi-xe2

问题我正在尝试解决:我的程序使用System.Win.ScktComp.TServerSocket通过以太网与另一个本地进程通信。在从本地进程接收数据包和发送响应之间是100ms - 这不应该花费这么长时间。我正在尝试使用调试器逐步完成我的程序,以查看100ms的使用时间。

问题是如果我在调试器中获得当前时间,它显然会计算它在调试器的暂停状态下花费的时间。另一个问题是我的应用程序的相关部分是TTimer并且是事件驱动的,因此当例程返回时,您不确定接下来将调用哪个例程。

我的尝试:我可以放弃使用调试器和print当前时间,例如所有 OnTimer程序和其他事件。

更好的解决方案:逐步调试,获取CPU时间(不受调试器暂停时间的影响),以确定丢失100ms的位置

2 个答案:

答案 0 :(得分:5)

我不相信你是以正确的方式处理你的问题,并在评论中提出了这一点。除此之外,您要求的功能是GetProcessTimes

答案 1 :(得分:1)

  

我试图......看看那里花了100毫秒。

调试器无法轻易告诉您。您需要使用分析器,例如AQTime或类似的,并让它实时计时并报告结果,例如在特定函数和类方法中花费了多少时间。