大型监视器会减慢winforms应用程序吗?

时间:2014-03-03 21:18:24

标签: c# winforms performance

WinForms应用程序在较大的显示器上运行速度会更慢(即分辨率更高),而其他所有应用程序相同吗?我的直觉是肯定的,因为有更多的房地产需要绘画,但我找不到任何关于效果的信息。

我问,因为我们有一个WinForms应用程序,通常在两台22英寸显示器上运行,但我们有几个用户在两台30英寸显示器上运行它们,并且它们的GUI似乎总是比使用22英寸显示器。

3 个答案:

答案 0 :(得分:2)

问题实际上不是英寸数,而是像素数。

绘制到800x600屏幕比绘制到1920x1080屏幕 (工作量减少约4倍) 的工作量少。
尽管如此,大部分工作可能都是通过显卡完成的,并且不会影响CPU负载。

答案 1 :(得分:0)

拥有来自竞争芯片制造商(一个nVidia和一个ATI)的显卡可能会导致速度减慢。

有问题的应用程序也可能是绘制效果不佳,当窗口较小时它不是那么明显,但是当它在较大的显示器上更大时,可怜的绘画代码是一个更大的热点。您可以尝试使用分析器来查看正在发生的事情。 Visual Studio现在内置了一个,或者您可以尝试使用DotTrace http://www.jetbrains.com/profiler/

答案 2 :(得分:0)

对于内置winform控件,差异不会那么大。通常,在任何分辨率下渲染这些控件都非常快。

检查您是否使用自定义绘制控件。在许多情况下,如果油漆方法没有很好地实施,性能会很差。例如,如果绘制像素(宽度和高度的嵌套循环),性能将随着分辨率的增加而显着减慢。

自定义控件的另一个技巧是启用双缓冲,它可以为繁重的绘图程序加速很多事情:

public partial class YourControl : Control
{
    public YourControl()
    {
        InitializeComponent();

        this.SetStyle(
            ControlStyles.UserPaint |
            ControlStyles.AllPaintingInWmPaint |
            ControlStyles.DoubleBuffer, true);
    }