对于在.NET技术中完成的每个应用程序的性能分析和优化,我应该使用哪些技术,您有什么看法?
你知道哪种调试/跟踪技术可以强大吗?
您是否认为在大型项目中需要定制调试/诊断类?
你是否建议使用应用程序分析器或其他第三方应用程序?.NET调试和跟踪性能:技巧/隐藏功能?
另一个值得关注的问题是:如何获取执行方法所花费的时间?
对于在.NET技术中完成的每个应用程序的性能分析和优化,我应该使用哪些技术,您有什么看法?
你知道哪种调试/跟踪技术可以强大吗?
您是否认为在大型项目中需要定制调试/诊断类?
你是否建议使用应用程序分析器或其他第三方应用程序?.NET调试和跟踪性能:技巧/隐藏功能?
另一个值得关注的问题是:如何获取执行方法所花费的时间?
这是语言不可知的建议。如果您获得了现有应用程序的一些experience doing performance tuning,尤其是较大的应用程序,则可以了解我学到的内容。最大的性能杀手是过度设计:太多的抽象层,通知驱动的处理等等。问题在于,抽象的东西会让你的生活变得更轻松,但最终会让你在没有你知道的情况下陷入巨大的周期性浪费之中。
这是一个非常通用的问题:)但是下面是一些指导
关于诊断和跟踪,您可以使用System.Dignostics命名空间中的类,例如TraceListner,您还可以考虑ETW事件以了解关键代码路径(MSDN中的Windows事件跟踪有很好的参考)。
您可以在System.Dignostics命名空间的内置类的基础上构建您自己的自定义可视化类。
一个非常有用的工具,你需要在你的抓包中有VS Profiler和CLR profiler分别用于时间分析和内存分析。
您可以使用一个分析器来有关于热功能的通用高层的想法,你可以使用秒表类测量时间对于一些选择的方法,或用于高分辨率时间,你可以使用QueryPerformanceCounter和QueryPerformanceFrequency的Windows APIs的