我需要绘制大约1000行。这些线每秒变化约25次(所以每秒变换25000线)。我可以使用什么来获得可接受的表现?我更喜欢不使用directX调用,因为此软件也需要在默认情况下不具有directX的服务器上运行。.NET GDI +绘图性能
两种不同的方法,我试图做到这一点,但是给了我一个熔化CPU:
设置1 - 标准.NET电话:
- 双缓冲面板
- 内存位图绘制(清算和使用Graphics.DrawLine重画线条
- 将位图复制到具有Graphics.DrawImageUnscaled的面板
- profiler说这两个图形调用是瓶颈 个
设置2 - GDI的dllimport的呼叫:
- 双缓冲面板
- 与MoveToEx和LineTo等存储器位图从GDI
- 绘制位图复制到面板的BitBlt
- 探查说这些非管理呼叫是瓶颈
会性能增加,如果我使用WPF而不是Winforms?或者通过使用directX或第三方库来做到这一点的唯一方法?
干杯
几何尺寸是多少? –
它们具有可变长度,范围介于1和500像素之间。 – BasiK
行数是否固定? –