如何在C#程序中内嵌汇编?包括非正规方法,大家集思广益。最大限度的提高.net运行效率。

解决方案 »

  1.   

    在C#里面没有用过。不过,提高performance,使用汇编代码好像没有什么意义吧?大部分的时间消耗中,与代码无关的部分很多的。
      

  2.   

    你有这样的想法是因为没有理解.net的运行原理,在C#程序中内嵌汇编不能带来效率的提高,而且C#也不能内嵌汇编。
    你要知道,.net的程序不是被直接运行的,简单的说.net的程序实际上只是一种作者意图的表述,当然这种表述是供.net虚拟机识别的,.net虚拟机根据这些表述翻译成适合本地的汇编代码然后运行。
    如果你非要用汇编,可以把要实现的模块用DLL封装,在C#里通过非托管代码调用这个DLL,但是这也不能带来效率的提高,甚至往往会降低效率。执行器在托管代码和非托管代码之间频繁转换,系统开销是惊人的
      

  3.   

    HOHO,Java能不能嵌汇编?楼上说的好。.NET和Java本来就不是用来做那些对效率很苛求的工作的。C/C++还是很有意义的。
      

  4.   

    这样做没有意义,还是先搞清楚.Net是用来做什么的吧
      

  5.   

    c#中无法嵌入汇编代码.为安全着想可以使用汇编+c++封装后供c#调用
      

  6.   

    可以,不过C#中的汇编叫做IL assembly,用法大概是用ilasm 和ildasm指令。里面的性能提升可以通过调整最大堆栈数来做,不过作用具体有多大,那就没有玩过了,如果你希望提升性能的话,还是多多考虑一下你的设计模式和高级语言上的问题吧!没有必要这么升入。
      

  7.   

    turnmissile(会翻跟头的导弹)面讲的东西我到是见过,你可以查一下,是有一个这样的东西
      

  8.   

    参考 
    Using Unmanaged code and assembler in C#
    23 Sep 2001
    This article describes how to call unmanaged code and assembler in C# using DLLs
     
    http://www.codeproject.com/csharp/unmanage.asp
      

  9.   

    你只有用C/C++,或Delphi等内嵌汇编,编译成DLL供C#调用。
      

  10.   

    Using Unmanaged code and assembler in C#
    23 Sep 2001
    This article describes how to call unmanaged code and assembler in C# using DLLs http://www.codeproject.com/csharp/unmanage.asp
      

  11.   

    http://www.xianfen.net/Article140.aspx