当说这段代码需要优化时,或者可以进行某种程度的优化,这是什么意思?哪种类型的代码需要优化?如何在C#中应用优化?从中又能得到哪些好处?
当说这段代码需要优化时,或者可以进行某种程度的优化,这是什么意思?哪种类型的代码需要优化?如何在C#中应用优化?从中又能得到哪些好处?
优化是一个非常广泛的术语。一般来说,它意味着修改系统,使其某些方面更加高效、使用更少的资源或更加健壮。例如,计算机程序可以被优化,使其执行速度更快,使用的内存或磁盘存储更少,或在UI方面更加响应。
尽管“优化”与“最优”的词根相同,但优化过程并不会产生完全最优的系统:总会有权衡,因此只有最感兴趣的属性才会被优化。
还要记住:
程序优化的第一条规则:不要进行优化。程序优化的第二条规则(仅供专家参考!):还不要进行优化。 (Michael A. Jackson)
优化是指修改系统以使其某个方面更加高效或使用更少资源的过程。
在您的情况下主要涉及以下两个层面:
设计层面
在最高层面上,设计可以被优化以最大限度地利用可用资源。该设计的实现将受益于选择高效算法和编写高质量代码。系统的架构设计极大地影响其性能。算法的选择比设计中的任何其他项目都更影响效率。然而,在某些情况下,优化依赖于使用更高级的算法,利用特殊情况和特殊技巧,并执行复杂的权衡;因此,完全优化的程序有时可能更难为经验不足的程序员理解,因此可能包含比未优化版本更多的错误。
源代码层面
避免低质量的编码也可以提高性能,从而避免明显的减速。然后,一些优化是可能的,这些优化实际上会降低可维护性;其中一些,但并非全部,现在可以通过优化编译器来执行。例如,使用更多间接寻址通常需要简化或改进软件,但该间接寻址具有成本。
优化有两个主要目的:
使您的软件使用更少的资源,例如运行更快,更小,使用更少的RAM,存储文档时和运行时使用更少的硬盘空间,减少网络访问等。
通过重构使您的软件更易于维护。
只有在出现相关问题时才需要进行优化:调试经过优化的代码比优化正确的代码要困难得多。