加速C#

这实际上是两个问题,但它们非常相似,为了简单起见,我想我会把它们放在一起:

  • 首先 :给定一个已经建立的C#项目,有什么体面的方法可以加速它不仅仅是简单的代码内优化?

  • 其次 :在C#中从头开始编写程序时,有什么方法可以大大提高性能?

  • 请远离一般优化技术,除非它们是C#特定的。

    之前已经有人要求使用Python,Perl和Java。


    离开我的头顶:

  • 用普通对象替换容器类的非泛型变体
  • 减少拳击/拆箱。 具体而言,尽可能使用泛型,并且通常避免将值类型作为object传递。
  • 对于使用许多动态控件的对话框:暂停绘图,直到通过使用SuspendLayout / ResumeLayout插入所有控件。 这有助于使用布局容器。

  • 不幸的是,相对较少的优化是语言特定的。 基础知识适用于各种语言:

  • 衡量实际负载的性能
  • 有明确的目标来指导你
  • 使用一个好的分析器
  • 相对较早地优化架构/设计
  • 只有当你已经证明问题时才进行微观优化
  • 如果你已经证明你需要进行微型优化,那么profiler往往会明白要寻找什么 - 例如避免装箱和虚拟呼叫。

    哦,我可以想到的一点是.NET特有的:如果您需要频繁拨打电话并且正在使用反射,请将这些调用转换为委托。

    编辑:其他答案建议使用泛型和StringBuilder等当然是正确的。 我(可能错误地)认为这些优化太“显而易见”;)


    一件简单的事情是确保您的构建配置设置为“发布”。 这将使优化和消除调试信息,使您的可执行文件更小。

    如果需要,请在MSDN上提供更多信息

    链接地址: http://www.djcxy.com/p/39593.html

    上一篇: Speeding Up C#

    下一篇: How can I speed up my Perl program?