我需要繪製大約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
行數是否固定? –