0

对于现代 IDE(例如 VS 2012),使用由可视化工具(例如 Visual Studio、Qt 等)创建的代码而不是从头开始编写代码是否存在显着的性能差异?我记得当我在 2003 年第一次尝试 Dreamweaver 时,我无法忍受它用废话来使代码臃肿的事实。从那以后,我对应用程序的视觉风格创建产生了不信任。现在我正在加快计算机编程的步伐,我想优化我做事的方式。由于我没有足够的经验,我无法回答我自己的问题。

我不是在寻找一个优于另一个的偏好,所以这不是关于哪个更好的讨论。我对那些注意到两种应用程序创建方式之间的性能差异的人的回答更感兴趣。

编辑(08/18/2013): 除了人们给我的精彩答案外,我想我会为任何研究性能的人添加这个。我一直在阅读Beginning Visual C# 2012 Programming,在那里我发现了一些非常重要且令人印象深刻的东西:

与部分类一样,部分方法在自定义自动生成或设计者创建的代码时很有用。设计者可以声明部分方法,您可以根据情况选择实现或不实现。如果您不实现它们,则不会对性能造成影响,因为该方法实际上不存在于已编译的代码中。

因此,如果没有实现,所有正在创建的额外“垃圾”都不会影响性能。事情已经走了很长一段路,在这方面我再高兴不过了。

4

3 回答 3

1

我实际上会同时说不和是:)

不,因为设计师实际上只是在做你本来会做的事情,只是自动地。看一下通过设计器创建的简单表单。

首先,部分类本身在编译时编译并映射相同的 IL 结果。所以这里没有损失。看看这个帖子

其次,处置被认为是一种很好的做法,不会无休止地填充你的记忆。

最后 InitializeComponent 的东西只添加了绝对必要的内容。如果您在表面上拖动任何控件,即使该控件也将使用必要的属性进行初始化,并且通常没有其他内容。

我也很伤心的原因是,根据控件的不同,可能会添加一些东西,你无论如何都希望在你的代码中改变,比如 Text 属性或类似的。所以这些是可以跳过的几行。但总的来说,我想它应该没问题,无论是手动还是通过代码都没有太大区别。

partial class SampleForm
{
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Windows Form Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.components = new System.ComponentModel.Container();
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Text = "SampleForm";
    }

    #endregion
}
于 2013-08-15T05:52:24.030 回答
1

你为什么担心那部分代码的性能?图形设计师只是将现有的 ui 构建块串在一起。这从来都不是性能关键。构建块要么足够快,可以使用,要么不行。当您在 gui 中手动优化按钮的创建和定位时,鼠标单击按钮的动画效果不会更好或更快。也许您可以担心代码大小。有可能优化一点。但我对此表示怀疑。

于 2013-08-15T08:58:47.310 回答
0

使用 Qt Creator,自动生成的代码实际上非常易读,并且看起来与您手动编写时所期望的一样。话虽这么说,我仍然手代码的东西。

于 2013-08-15T04:44:38.353 回答