Re: Can Someone Change My Mind About .NET?

From: Willy Denoyette [MVP] (willy.denoyette_at_pandora.be)
Date: 04/30/04


Date: Fri, 30 Apr 2004 18:42:59 +0200

See inline ****

Willy.

<Olaf.Baeyens@skyscan.be> wrote in message
news:409244ba$0$25074$a0ced6e1@news.skynet.be...
>> > Windows core is still unmanaged and .NET prigrams must go through that
>> > transition every time. When Longhorn is out, it wil be reversed. .NET
> will
>> > be faster than conventional executables now.
>>
>> That would be cool if that was the case. However I don't think that is
> so.
>> Win32 is not going away with LH. WinFx classes will still need to call
>> Win32 apis in many cases. Even if a class does not pinvoke a win32 api,
> why
>> would it be any faster then a comparable method in native win32? Maybe
> the
>> same, I don't see how faster. That would be nice however if wrong.
>>
> Simple, more an more Win32 API is beeing replaced by .NET variants.

**** Hmmm... which Win32 API's have been replaced sofar?
More and more win32 API's are introduced by now (see W2K3 and LH).

> That means that .NET programs have less and less transitions from managed
> to
> unmanaged to do.

*** No that's not true, .NET is built upon Win32, somehow, it will allways
need to transition between managed and Win32 for system services.

>
> But for existing Win32 executables, the will need Win32 API's that wraps
> functionality to the .NET core.
> That means that Win32 executables must go from unmanaged to managed code
> transitions. So they will slow down.

*** And break alot of existing applications, do you realy think the Server
and Office folks at MS are willing:
- to pay this perf. hit?
- to compromise the reliability of their server?

>
> .NET programs will be faster because the CLR gets better and better.
> At this moment, conventional exe works at its best perfocramence because
> of
> the compiler that optimizes it for the current known processors.
> If you do not recompile the .NET applcation and conventional program, you
> would see that the .NET version gets faster and faster compared to the
> conventional program butcause JIT v2.0 will optimize for the most recent
> processor while the conventional application is still stuck to the Pentium
> IV optimizations.
>

*** Don't overestimate the power of the JITter, he's heavily constrained by
the "time to optimize", and don't overestimate the power of the newer
processor family.
Don't forget that the latest native code compilers also generate better &
faster code, and that parts of the system cannot afford the overhead of the
GC both in time and space (think about drivers and core windows component
like the memory manager, scheduller, interupt handler....). And here I'm not
gonna talk about robustness, but why do you think Yukon and .NET 2.0 are
getting delayed?

> Conventional executables are static in nature. all methods and functions
> are
> laid out in a certain memory order at the moment you compiled and linked.
> .NET programs are dynamic in nature. Future JIT compiler might perform
> statistics what function is use how often, and might relocate it in a

*** "might", yes but officially anounced, no. For the moment MS has other
performance issues to solve which have much more impact than some profile
guided JITter.

> different memory block so the the most used functions are grouped together
> in a small memory address space, ready to be cached more often. Also .NET
> programs written in pure OOP way is now far more performant compare to the
> OOP version of a C++ unmanaged. because it does not need to delete small
> memory memory bloks every time stalling then program. .NET starts deleting
> the memory when it either needs memory, or if it can find some time to
> start
> cleaning up.
>
> Just be aware! .NET is NOT an interpreter, It compiles the complete code
> to
> pure win32 code but optimized for your processor. When JIT matures, it ill
> become even better optimizer.
>
> Another thing that must be taken into mind, is the fact that .NET programs
> also implements security at the low level standard.
> You should compare Win32 functions with also this type of level of
> security
> build in. If I remember correctly a web page counter extension for
> Frontpage
> 97 could be misused to take over the server. A stupid prgram that only
> intended to show a bitmap on screen was misused. This is why all programs
> now created should have this security integrated default.Even if it is a
> simple screen saver, it could be misused by a worm. (examples enough: e.g.
> windows help file could be used to take over your computer) Maybe next
> Solitair....
>
> But this is my opinion? I really believe that this .NET is the way to go,
> and I admit that I also fight against it to have my code work. ;-)
>
>



Relevant Pages

  • Re: Can Someone Change My Mind About .NET?
    ... > Win32 is not going away with LH. ... the compiler that optimizes it for the current known processors. ... Conventional executables are static in nature. ... laid out in a certain memory order at the moment you compiled and linked. ...
    (microsoft.public.dotnet.general)
  • Re: 64-bit on the horizon? (Was Re: Vista Requirement Already)
    ... Win64 code is very often slower than win32 because the size of the ... Memory usage increased by 1.5, compilation time increased by 1.3 thought the i386 compiler contains more code because it supports more targets. ...
    (borland.public.delphi.non-technical)
  • Re: Can Someone Change My Mind About .NET?
    ... Your not going to get faster then native c++ to native win32 ... Many of the .Net classes still wrap win32 calls. ... > the compiler that optimizes it for the current known processors. ... > laid out in a certain memory order at the moment you compiled and linked. ...
    (microsoft.public.dotnet.general)
  • Re: WWDC -- MacBook Pro?
    ... ....but once the program has loaded it into its program memory, ... boundaries, int16 are aligned on 2 byte boundaries, int32 are ... people are always able to come up with the compiler ... Case B, same glass, same ice code water.  ...
    (comp.sys.mac.system)
  • Re: Javas performance far better that optimized C++
    ... The compiler is extremely stupid. ... no memory leaks are guaranteed. ... However I have GC in my .NET programming. ... "C.9.1 Automatic Garbage Collection ...
    (comp.lang.cpp)