我的下一个任务是调整我们的C#应用程序,以最大限度地减少内存使用,减少使用的线程并提高性能。
我们的应用程序每100ms会收到一条小状态消息。应用程序将处理这些状态消息。然后我们的应用程序将收到2M数据。将处理该日期,并根据处理的数据创建另外4个数据。之后,所有数据都将保存到数据库中。
模块之间的通信是事件。因此系统中大约有100个事件(并非所有事件都是必需的)。
我可以用什么工具来诊断问题并帮助改善问题?
答案 0 :(得分:2)
您需要的应用程序是Profiler。 .NET有很多这样的工具。最高版本的Visual Studio包括集成的分析器。您还可以从许多地方下载不同的.NET Profiler工具:
http://memprofiler.com/?gclid=CMTpo73j66ICFQ8EZgod6nuagA
答案 1 :(得分:0)
This method works very well in C#.它会找出可以解决的问题,以提高效果(for these reasons)。如果要分配太多内存,则会在特定对象的new
中显示大部分时间。由于您有多个线程,因此可以将该技术独立应用于不同的线程。
你可以期待在早期找到一些相当容易修复的东西以获得加速。在那之后,您需要做的事情将是显而易见的,但可能并不简单,需要进行更广泛的重新设计。