WPF程序性能优化

某飞机制造研究所需要对其研发嵌入式软件收集并呈现测试结果,其测试团队使用WPF以及ACE技术开发了一个实时测试结果显示程序。研究所要求对嵌入式软件的测试结果显示需要精确到20毫秒级别,以便及时发现对整个系统造成灾难影响的问题。

在测试程序的开发过程中,程序人员无法满足20毫秒级别的测试结果收集精度,只能精确到100毫秒。另外,程序人员还发现其他几个问题:

  1. 在程序的某些模块里,响应速度比较慢。
  2. 当程序运行一段时间以后,会自动崩溃。

解决方案

针对上述三个问题,上海知平信息技术有限公司的性能调优工程师采取了如下几种针对性的措施:

  1. 对收集测试结果的部分代码进行代码复审,找出潜在的影响运行效率的代码。并在代码中添加条件编译代码跟踪关键函数的运行记录,以便后续分析。
  2. 使用Visual Studio和Windows SDK的性能测试工具,例如exe和WPFPerf.exe来定位执行时间比较长的代码,以及定位热点代码的调用堆栈,帮助找到根本原因。使用Visual Studio自带的工具对比程序多次运行的性能报告,以确认优化效果。
  3. 使用exe在程序长时间运行崩溃之后,收集程序当时的运行状态以及内存记录,找到潜在问题点。重新运行程序后,依据任务管理器以及性能监视器中针对程序的几个性能指标,例如内存分配情况,垃圾回收次数,创建的句柄数等指标,使用Windbg提供的调试命令找到根本原因并修复程序崩溃的问题。

相关技术:C#, WPF, Windbg, ACE

未经允许不得转载:上海知平信息技术有限公司 » WPF程序性能优化

赞 (9)
分享到:更多 ()