本文记录一些通用的 SharpDx 的性能优化方法
本文属于 SharpDx 系列 博客,建议从头开始读
不要监听 ContentRendered 事件
监听了 Window 的 ContentRendered 事件将会降低整个 WPF 的渲染性能
关注硬件渲染
注意是否在 WPF 开启了硬件渲染,详细请看 WPF 渲染级别 和 WPF 设置纯软件渲染
执行业务代码的耗时
在执行 SharpDx 的指导渲染逻辑,也就是告诉 SharpDx 应该画点还是画线的逻辑,在这个逻辑里面耦合了业务逻辑,业务逻辑本身的耗时将会让 SharpDx 的收集绘制指令的性能降低
_renderTarget.BeginDraw();
// 执行耗时的业务代码
_renderTarget.DrawEllipse(ellipse, brush, 1);
_renderTarget.EndDraw();
因此优先解决这部分业务代码,可选方案是让这部分代码先执行,执行完成之后再执行 SharpDx 的绘制逻辑
另一个方法就是让业务代码在另一个线程