想了解一下关于这方面的比较正确的理解.个人是这样理解的.
  只有面向对象才能真正让.Net程序的性能处于最好的水平.我的理解依据是这样的.JIT编译的时候对程序中第一次执行的代码块进行编译,编译完后缓存起来,以后就不需要再编译了.那基于这种原理,如果是面向过程开发的话,很多代码的复用是用COPY的,那相同的代码有可能就会被编译很多次.不知道这样理解能否成立.还请各位留下自己的见解.谢谢了.

解决方案 »

  1.   

    你说的对,CLR是以函数为单位编译的。想补充一点,函数的组织也很重要,常用的代码和少用的代码分开是个很好的实践
      

  2.   

    能否这样说:
    所以做.Net开发,面向不仅是程序扩展性,维护性,同时也是性能上的要求。
      

  3.   

    syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*
       能否这样说 .Net的性能 本身就已经是对面向对象的最大的妥协了。
      

  4.   

    现在是讨论面向对象对.Net的影响,由于.net的JIT特性.我想这个不能跟 C和C++的比较相提并论的吧.
      

  5.   

    呵呵,好快的回复。
    .net性能现在还不行,提高.net代码运行速度有不少很好地实践,有些还是.net特有的。但是,即使这样,性能还是.net的弱点。像2楼说的,这是代价。
      

  6.   

    现在想了解的一个问题是,在现在的.net性能基础.讨论这个句话的正确性.做.Net开发,面向对象不仅是程序扩展性,维护性,同时也是性能上的要求。
      

  7.   

    面向对象也好,面向过程也好,性能主要还是由framework来决定的吧.
      

  8.   

    没错,基础是由framework来决定的.
      

  9.   

    面向对象只是影响性能的一个方面,并不能说面向对象对性能影响很大,比如C到C++加入了面向对象,但性能影响较小,在.NET中,只要的性能问题是面对硬件的执行太远了,如代码->编译->中间语言->JIT->机器代码;这么多层性能当然要受到影响,而非托管:代码->编译->机器代码,所以性能的关键是编译器与面向硬件程度;再如汇编操作的是硬件,如内存,所以飞快
      

  10.   

    面向对象只是影响性能的一个方面,并不能说面向对象对性能影响很大,比如C到C++加入了面向对象,但性能影响较小,在.NET中,只要的性能问题是面对硬件的执行太远了,如代码->编译->中间语言->JIT->机器代码;这么多层性能当然要受到影响,而非托管:代码->编译->机器代码,所以性能的关键是编译器与面向硬件程度;再如汇编操作的是硬件,如内存,所以飞快
      

  11.   

    .Net本身的运行机制对速度的影响远比面向对象大,但是用户对这些不是很在乎,就像java一样,它运行效率差,但是很多大型解决方案都是基于它(c#+windows都可以搞定)。最主要是你怎么吹牛了。
      

  12.   

    面向对象的代码重用高,开发速度快等特点应该能遮蔽他性能上的弱点,
    个人认为性能和面向对象并没有直接的联系,性能主要还是和硬件有关,
    正如liduke(天下有雪) 所说:面向对象主要是为了应用程序员在进行开发时减少工作量,因为相对于用户的业务需求来说,面向对象可以使开发人员重用性增强,相比这个来说性能带来的只是小问题了