我想跟踪 ac# 移动应用程序中的性能,以便了解一些长时间运行的方法所需的时间。目标是了解方法级别的性能。这种跟踪将在运行时决定。
出现的第一个想法是维护一个全局变量“doWeHaveToTrace”,每次调用可能可跟踪的方法时检查它,如果该变量为真,则跟踪它。在这种情况下,我可能会使用 Logger 或 TraceListener 将跟踪信息写入文件。
但我认为这种机制相当繁重,因为必须在每个方法中检查一个变量,并且必须对记录器调用进行编码。
我也考虑过方面编程(在before()
和after()
方法中插入跟踪代码),但我不认为在这个项目中可以允许方面编程。
所以我想知道,有没有其他好的机制可以提供这样的性能跟踪?是否可以跟踪整个方法?并决定在运行时停止或恢复跟踪?