1

我想跟踪 ac# 移动应用程序中的性能,以便了解一些长时间运行的方法所需的时间。目标是了解方法级别的性能。这种跟踪将在运行时决定。

出现的第一个想法是维护一个全局变量“doWeHaveToTrace”,每次调用可能可跟踪的方法时检查它,如果该变量为真,则跟踪它。在这种情况下,我可能会使用 Logger 或 TraceListener 将跟踪信息写入文件。

但我认为这种机制相当繁重,因为必须在每个方法中检查一个变量,并且必须对记录器调用进行编码。

我也考虑过方面编程(在before()after()方法中插入跟踪代码),但我不认为在这个项目中可以允许方面编程。

所以我想知道,有没有其他好的机制可以提供这样的性能跟踪?是否可以跟踪整个方法?并决定在运行时停止或恢复跟踪?

4

3 回答 3

2

不确定您要跟踪的确切内容,但如果您要跟踪长时间运行的方法之间的时间,也许您最好连接到.NET Profiling API。这里有一个使用教程。

商业分析器将是另一个更简单的选择。

于 2009-05-04T15:53:44.273 回答
0

阅读有关如何在 .NET 中使用Trace 和 Debug 有条件地编译(假设您使用的是 .NET)。TraceDebug类将为您提供开发所需的所有运行时输出。然后,您只需删除 TRACE 编译器指令即可删除已部署应用程序中的所有调试/跟踪代码(以及相关的运行时开销)。

或者

您可以使用外部分析应用程序进行性能和内存分析。请参阅此处(来自 StackOverflow.com):哪些是好的 .NET 分析器?

于 2009-05-04T15:53:55.567 回答
0

你可以在台式机上,在 IDE 下运行它,然后做通常的事情,比如计时和/或采样吗?

您一定会发现需要时间并且可以加快速度的事情。

于 2009-05-05T23:17:24.713 回答