.NET应用程序的优化

来源:互联网 发布:乐乎城市青年社区 编辑:程序博客网 时间:2024/05/13 17:31
 
.NET应用程序的优化
[%=@count%]票 [[%=@percent%]%]
提交
    
      由于.NET编写的程序提供了一个中间层,MSIL(微软中间语言),所以编写的程序在启动的时候可能会有点慢,虽然微软公司对CLR进行了足够的优化,但是启动速度可能还是会感觉到比编译为目标码的慢些,所以优化的工作是很有必要的了.java写的程序就更慢了,java现在也采用了.NET上的即时编译技术.
    C#/VB编译器编译后的并不是目标机器码,而是MSIL,加载时由CLR即时编译成机器码,这个过程可以对代码进行平台优化,注意一点:CLR只编译要执行的那部分代码,所以就可以从这里下手优化启动代码.
     <1>减少启动要执行的代码,把不必要的代码,和不需要使用的代码,滞后执行,尽量不要在启动时执行太多的代码,如果某些东西不是很快就需要可以选择需要时执行,或使用单独线程执行.
     <2>不要在Load里面写好多代码,可以把代码移到Main函数中.
(1)精简代码(2)滞后加载(3)独立线程执行(4)移动代码
   
    代码优化:
代码优化后可以减少代码数量和优化算法,这样可以提高代码质量,提高运行速度,但是不要在编写代码时就开始优化,首先要使程序运行起来,过早的优化只会陷入优化陷阱,所以优化代码的工作要在写好了基本运行代码后在做.
    优化算法:
好的高效的算法可以大大提高执行速度,值得去研究更好的算法
    在优化时没有必要做一些基本的工作,比如说把long改成int或其它的,这对于改进性能没有多大的帮助,而应该在消耗大量CPU的代码上下功夫.
    还有要即时释放不要使用的对象,不要在循环中创建线程等,对于频繁大型对象可以考虑使用对象池,频繁创建线程可以考虑使用线程池,在使用string对象时要注意,不要使用太多的+连接字符串,特别是循环中使用,可以考虑使用StringBuilder类,集合的使用在2.0中有泛型集合,所以应该尽量使用泛型集合类,选择合适的泛型集合类可以提高性能,等等还有好多条编写代码时注意的东西.
  然后如果实在是程序太大,启动速度无法在提高时可以使用闪窗体,这样可以让用户觉得等待不是那么枯燥,可以在闪窗中显示加载速度和在做什么,这样效果就比较好了.

   代码优化了后,还有一个可以提高启动和运行速度的方法就是不被好多程序员注意的本机印象这个功能,在发布程序集时可以在安装后可以采取对程序集生成本机镜像,这样可以很大程度的提高运行和启动速度的,举个例子:我写了一个播放器的程序,代码不少有15000行左右,而且程序还有好多自绘制的地方,如果不使用生成本机镜像的话启动速度比较慢,大概20s的样子,有比较长的等待时间,但是采用生成镜像后启动速度几乎是点击后就打开了.
   注意生成的镜像只是生成了本机镜像的缓存并没有实际把程序集修改成本机代码,而是把本机代码缓存起来.

   代码总是在不断的重构和优化,不要以为功能实现就完事了,应该要想到如果才能使程序运行的更好,程序实现的更简洁更优雅,程序界面更友好,这就要用上设计模式和重构这两种技术了.
   个人认为代码写的好是可以用来欣赏的,也是一件艺术品.