Re: Can you write code directly in CIL ???
"Peter Olcott" <olcott@att.net > wrote in message
news:IEbsf.3796 5$QW2.18916@duk eread08...[color=blue]
>
> "Abubakar" <abubakarm@gmai l.com> wrote in message
> news:%23tiR4prC GHA.3820@TK2MSF TNGP12.phx.gbl. ..[color=green]
>> Hi,[color=darkred]
>>> Cab you write code directly in the Common Intermediate language? I need
>>> to
>>> optimize a critical real-time function.[/color]
>>
>> ofcourse you can, by now you may even have done it. Just write few *.il
>> lines and pass it to ilasm (that comes with the sdk) and you'll get the
>> managed binary.
>>
>> although Nicholas tried explaning. I have just few things to add.
>>
>> 1- If you look at the shared source implementation of .net, ie, SSCLI
>> (aka
>> ROTOR), you wont find a single *.il file that microsoft devs had to write
>> in
>> order to acheive better performance. The max they did to write fast code
>> as
>> a .net code was to write the unsafe C# code (which uses pointers). Beyond
>> that, places that needed to get maximum efficiency like JIT, they used a
>> pure c++ code and in very few places, x86 assembly code was used. I think
>> if
>> those developers could acheive anything significant by writing il
>> directly,
>> they would have done that.[/color]
> What I had in mind was to write the best possible code in C++ and have the
> best compiler translate this into assembly language. The best compiler so
> far seems to be Visual C++ 6.0. Some of the optimizations in 7.0 are
> disabled, in particular function inlining. Then I was going to hand tweak
> this generated assembly language. Then as a final step I was going to
> translate this into CIL.
>[color=green]
>> 2- C# compiler is as clever in generating msil as anyone can possibly
>> get. I[/color]
> False assumption when one examines the benchmarks of managed C++ against
> managed C#, Managed C++ does significantly better in at least some cases.
>[/color]
Not sure where you get this from? Did you actually run such benchmarks?
I did run many benchmarks, since v1.0 comparing both C# and Managed C++ (and
C++/CLI) and I never saw a delta (yes, for some C# is the winner) larger
than 5%, using v2 they are even smaller.
Willy.
"Peter Olcott" <olcott@att.net > wrote in message
news:IEbsf.3796 5$QW2.18916@duk eread08...[color=blue]
>
> "Abubakar" <abubakarm@gmai l.com> wrote in message
> news:%23tiR4prC GHA.3820@TK2MSF TNGP12.phx.gbl. ..[color=green]
>> Hi,[color=darkred]
>>> Cab you write code directly in the Common Intermediate language? I need
>>> to
>>> optimize a critical real-time function.[/color]
>>
>> ofcourse you can, by now you may even have done it. Just write few *.il
>> lines and pass it to ilasm (that comes with the sdk) and you'll get the
>> managed binary.
>>
>> although Nicholas tried explaning. I have just few things to add.
>>
>> 1- If you look at the shared source implementation of .net, ie, SSCLI
>> (aka
>> ROTOR), you wont find a single *.il file that microsoft devs had to write
>> in
>> order to acheive better performance. The max they did to write fast code
>> as
>> a .net code was to write the unsafe C# code (which uses pointers). Beyond
>> that, places that needed to get maximum efficiency like JIT, they used a
>> pure c++ code and in very few places, x86 assembly code was used. I think
>> if
>> those developers could acheive anything significant by writing il
>> directly,
>> they would have done that.[/color]
> What I had in mind was to write the best possible code in C++ and have the
> best compiler translate this into assembly language. The best compiler so
> far seems to be Visual C++ 6.0. Some of the optimizations in 7.0 are
> disabled, in particular function inlining. Then I was going to hand tweak
> this generated assembly language. Then as a final step I was going to
> translate this into CIL.
>[color=green]
>> 2- C# compiler is as clever in generating msil as anyone can possibly
>> get. I[/color]
> False assumption when one examines the benchmarks of managed C++ against
> managed C#, Managed C++ does significantly better in at least some cases.
>[/color]
Not sure where you get this from? Did you actually run such benchmarks?
I did run many benchmarks, since v1.0 comparing both C# and Managed C++ (and
C++/CLI) and I never saw a delta (yes, for some C# is the winner) larger
than 5%, using v2 they are even smaller.
Willy.
Comment