Re: Can you write code directly in CIL ???



Peter,

Not at all. When the CLR gets a hold of the JIT, it is free to perform
any optimizations it deems necessary, and that might not necessarily be in
line with what you are expecting.

My recommendation would be to use Managed C++ to create a wrapper to
your unmanaged code which uses It Just Works (IJW, seriously). You should
get a managed interface, and the best possible performance (for this
specific situation, not all situations) between managed an unmanaged code.


--
- Nicholas Paldino [.NET/C# MVP]
- mvp@xxxxxxxxxxxxxxxxxxxxxxxxxxx

"Peter Olcott" <olcott@xxxxxxx> wrote in message
news:_51sf.37898$QW2.37853@xxxxxxxxxxxxx
>I need the best possible execution speed. I have found that there is a
>large difference in the quality of the code generated by the various
>compilers. I have 16,000 hours of development time in my current project.
>There is a 100 line function that must take no longer than 1/10 second to
>execute. I can just barely achieve this with MSVC++ 6.0. MSVC++ 7.0 has had
>some of its optimizations disabled. I eventually will need to port this to
>C# .NET. This is a case where hand tweaked assembly language would be
>appropriate. I figured that hand tweaked CIL would be the .NET equivalent
>of hand tweaked assembly language.
>
> "Nicholas Paldino [.NET/C# MVP]" <mvp@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote
> in message news:OCvd7unCGHA.2644@xxxxxxxxxxxxxxxxxxxxxxx
>> Peter,
>>
>> You can write it, but you would have to create a module with IL, and
>> then compile that into your assembly (or just write the whole assembly).
>>
>> Also, what optimizations do you think you can make? Ultimately, you
>> suffer from the fact that Windows is not a real-time OS, and nothing you
>> can do will change that. On top of that, the JIT is what's going to
>> optimize your code again after you try to, so you might actually end up
>> hurting yourself more than helping yourself.
>>
>> If you post the code you are trying to optimize, we can try and tell
>> you where you might make some improvements, but dipping down to the IL
>> level is most likely not going to help you much.
>>
>>
>> --
>> - Nicholas Paldino [.NET/C# MVP]
>> - mvp@xxxxxxxxxxxxxxxxxxxxxxxxxxx
>>
>>
>> "Peter Olcott" <olcott@xxxxxxx> wrote in message
>> news:7t%rf.37887$QW2.9998@xxxxxxxxxxxxx
>>> Cab you write code directly in the Common Intermediate language? I need
>>> to optimize a critical real-time function.
>>>
>>
>>
>
>


.



Relevant Pages

  • JIT compiler optimizations (inlining threshold too low?)
    ... I noticed that the performance of the JIT optimizer has not improved as much ... I know that there is a tradeoff between JIT optimizations and startup speed. ... public static Complex Zero ... double xre, xim, cre, cim, t; ...
    (microsoft.public.dotnet.framework.performance)
  • Re: JIT Optimizations Lacking!
    ... Nathan Zaugg wrote: ... performed during the JIT compilation is not nearly as good as the ... optimizations done by C++ at compile time. ...
    (microsoft.public.dotnet.framework.clr)
  • Re: optimized code
    ... > loop invariants are handled by the JIT not by the compiler fron-ends. ... generates the best optimized MSIL of any of the .NET languages. ... standard native code optimizations on MSIL code. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: optimized code
    ... All depends on what exactly you are measuring, how you are comparing and ... produced by the C++ compiler, when enabling max. optimizations (enables the ... > "Floating Point?The v1 JIT does not currently perform all the FP-specific ... > optimizations that the VC++ backend does, ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Can you write code directly in CIL ???
    ... >>> JIT that has more to do with optimisation IMO. ... Many of the instructions would ... The JIT probably does all the processor specific optimizations. ...
    (microsoft.public.dotnet.languages.csharp)