Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 阿奎斯特是怎么做到的?_Performance_Profiler_Profiling_Aqtime - Fatal编程技术网

Performance 阿奎斯特是怎么做到的?

Performance 阿奎斯特是怎么做到的?,performance,profiler,profiling,aqtime,Performance,Profiler,Profiling,Aqtime,我一直在测试,看看是否值得为我的Delphi应用程序花费这么大的$$$ 令我惊讶的是,它如何能够在不修改应用程序源代码和不向调试运行添加过多时间的情况下,为您提供源代码行级别的性能跟踪(包括每行执行的次数和该行花费的时间) 他们如此高效地完成这项工作的方式让我认为,这里可能使用了一些我不知道的技术/技术,了解这些技术/技术会很有用 您知道他们使用什么样的方法来逐行捕获执行而不更改代码吗 是否还有其他评测工具也可以进行非侵入性逐行检查?如果是,它们是否使用相同的技术?我不太了解Delphi,但C应

我一直在测试,看看是否值得为我的Delphi应用程序花费这么大的$$$

令我惊讶的是,它如何能够在不修改应用程序源代码和不向调试运行添加过多时间的情况下,为您提供源代码行级别的性能跟踪(包括每行执行的次数和该行花费的时间)

他们如此高效地完成这项工作的方式让我认为,这里可能使用了一些我不知道的技术/技术,了解这些技术/技术会很有用

您知道他们使用什么样的方法来逐行捕获执行而不更改代码吗


是否还有其他评测工具也可以进行非侵入性逐行检查?如果是,它们是否使用相同的技术?

我不太了解Delphi,但C应用程序调试器可以相对轻松地进行逐行评测-它可以加载代码并将每个代码路径与一个代码块关联。然后,它可以中断所有条件跳转指令,只需观察并查看所采用的代码路径。像gdb这样的调试器可以相对高效地运行,因为它们通过内核工作,不修改代码,它们只是在执行每一行时得到通知。如果某个原因导致块提前退出(longjmp),调试器可以钩住它,并计算出它在发生时进入块的距离,并且只增加这些行


当然,编写代码仍然很困难,但当我说“轻松”时,我的意思是,您可以做到这一点,而不必在更新计数器的每一条指令上浪费时间。

长期停产的TurboPower还为Delphi提供了一个很棒的评测/分析工具,名为Sleuth QA Suite。我发现它比AQTime简单得多,但也更容易得到有意义的结果。也许值得一试——易趣,也许?

这只是猜测,但也许AQtime是基于一种类似于

迂回道是一个仪器库 x86、x64、, 和IA64机器。绕道拦截 通过重新写入 目标函数的内存中代码


我为Delphi制作了一个开源分析器,其功能与此相同:

它并不完美,但它是免费的:-)。Is也使用迂回技术。 它存储每个呼叫(您必须手动设置要配置的功能),
因此,它可以创建一个精确的呼叫历史记录树,包括一个时间图表(!)。

必须是!除非有人知道一些不同的东西,否则我会给你答案。有些人称之为“勾搭”。MadCodeHook是一个Delphi工具,它可以让您插入代码。有趣的是,代码挂接的一个限制是不能挂接太短而不允许内联修改的函数。AQTime报告的函数太小,不允许使用挂钩,您所能做的就是忽略它们。这让我确信,挂钩(检测、拦截)是AQTime所做的。谢谢,做得很好,Andre。我要试试看。Delphi社区可以真正使用集成到Delphi IDE中的分析器。既然你已经得到了开源,你可能想考虑把它捐给NabCabelo,他们可能会包括它。或者以200美元一瓶的价格出售。现在它确实有一瓶了!RAD Studio XE Enterprise和ARchitect现在包括AQTime Lite。它是内置的。如果您购买AQTime pro,它可以完全集成到IDE中,也可以单独使用。AQTime非常棒。我喜欢它。我完全推荐它。