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




"Willy Denoyette [MVP]" <willy.denoyette@xxxxxxxxxx> wrote in message
news:ezbs6U5CGHA.2292@xxxxxxxxxxxxxxxxxxxxxxx
>
> "Peter Olcott" <olcott@xxxxxxx> wrote in message
> news:g8ksf.38005$QW2.12382@xxxxxxxxxxxxx
>>
>> "Willy Denoyette [MVP]" <willy.denoyette@xxxxxxxxxx> wrote in message
>> news:%233iWaovCGHA.1032@xxxxxxxxxxxxxxxxxxxxxxx
>>>
>>> "Peter Olcott" <olcott@xxxxxxx> wrote in message
>>> news:IEbsf.37965$QW2.18916@xxxxxxxxxxxxx
>>>>
>>>> "Abubakar" <abubakarm@xxxxxxxxx> wrote in message
>>>> news:%23tiR4prCGHA.3820@xxxxxxxxxxxxxxxxxxxxxxx
>>>>> Hi,
>>>>>> Cab you write code directly in the Common Intermediate language? I need
>>>>>> to
>>>>>> optimize a critical real-time function.
>>>>>
>>>>> 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.
>>>> 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.
>>>>
>>>>> 2- C# compiler is as clever in generating msil as anyone can possibly get.
>>>>> I
>>>> False assumption when one examines the benchmarks of managed C++ against
>>>> managed C#, Managed C++ does significantly better in at least some cases.
>>>>
>>>
>>> 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.
>>>
>>>
>> I found it on the web, some of the differences were several-fold. I don't
>> know which versions.
>
> Well, they were wrong, for sure, Please post the URL's where you found this
> kind of nonsense.
>
> Willy.

The difference between VC++ 6.0 and VC++ 7.0 is 50%. The older compiler produces
much better code.
http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchmarks.htmlThe above link shows that C# is about 500% slower on something as simple as anested loop.>>>

.



Relevant Pages

  • Re: Permutation Generator
    ... groups.google.com can show you many pure python recipies and benchmarks, ... but I'll give my ususal response: ... Prev by Date: ...
    (comp.lang.python)
  • Re: pyvm -- faster python
    ... I've seen the benchmarks, they look quite interesting. ... long-lasting results/consequences for your work. ... Bearophile ... Prev by Date: ...
    (comp.lang.python)
  • Re: FastMM 4.24
    ... http://dennishomepage.gugs-cats.dk/FastCodeProject.htm for benchmarks (or ... the basm newsgroups). ... Oliver Townshend ... Prev by Date: ...
    (borland.public.delphi.non-technical)
  • Re: Fastcode MM B&V 0.38
    ... This is the fix we applied to two other benchmarks. ... Dennis ... Prev by Date: ...
    (borland.public.delphi.language.basm)
  • Re: Open a CSV file
    ... The benchmarks of processing csv files using the microsoft drivers are ... Prev by Date: ...
    (microsoft.public.dotnet.languages.vb)