Tech Off Thread

7 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

.NET Performance

Back to Forum: Tech Off
  • User profile image
    raptor3676

    Recently while browsing the internet I found a .NET port of the Linpack (v2.1 I think) test used benchmark computers.

    I decided to benchmark  .net 1.1 vs 2.0 so I compiled the same code using VS.NET2003 and VS.NET2005, then I runned them in a machine with both frameworks installed.  

    For a problem size of 500 (google for linpack) 2.0 was like 10% faster than 1.1 for a problem size of 1000 I got mixed results (somehow disappoiting Sad)

    However the amazing happend when I runned both versions of the program (1.1 and 2.0) on my laptop that only has 2.0 installed on.  So both version ended up running with the SAME framework.

    This are the scores:

    Compiled for 1.1: 157.94 Mflops/s
    Compiled for 2.0: 149.48 Mflops/s

    Can someone explain me how this non-sense happend? (Remember both version runned on .NET 2.0)

    this where I got the source from http://www.shudo.net/jit/perf/#linpack
    I made a console application out of it, I some one wish to try my version out I gladly send him a e-mail with the C# source code.

    Raptor

  • User profile image
    androidi

    I'll try to explain how it could make some sense. If you look at updated drivers and so on, it is common the performance goes down slightly in some cases. Compatibility, security and other fixes like that can bring perf down. There also could be added functionality for diagnosing issues with retail builds. I don't know really. In the case you present, the 2.0 compiler might have some new setting that adds some extra code there for whatever, probably good, reason. BTW how many times you ran it, did the results fluctuate?

    Applications that are made 2.0 only in mind will likely reap performance benefits indirectly, through the possibility of allocating more time in algorithm design and optimization and less time in replacing missing win32 functionality and creating own collections for example. Or one could choose to be a bit slower and get the app earlier to market.

  • User profile image
    Frank Hileman

    If you care about .NET performance for graphics, numerical, scientific, and engineering applications, vote high for this sorely neglected area: a lack of inlining for value type members:

    Methods using valuetype parameters should be eligible for inlining

  • User profile image
    raptor3676

    Androidi:

    I run the test several times and shutted down any unnecesary process on my laptop before runningm, the results I posted where the average I got.

    besides that I undertand your point that new software versions often comes with new security or checking resulting in reduced performance.  However I recently found an article on the MSDN (damn! I can't find the link to post it here) stating the improvement along .NET framework versions.  So anyone could not expect less from the last version but better performance.

    Frank:

    Oh, hell yeah I'm care about performance almost paranoid some might say.

    I already vote for that suggestion on MSND Lab. That one an the interface for generic arithmetic (I guess you already know the article about that on the CodeProject.com) are the only two disturbing things about .NET 2.0 for me so far.

    This question I posted here is the kind that someone at the CLR team should answer.

  • User profile image
    raptor3676

    I found the article check it out here :

    http://msdn.microsoft.com/msdnmag/issues/04/03/ScientificC/

  • User profile image
    AndyC

    raptor3676 wrote:

    Can someone explain me how this non-sense happend? (Remember both version runned on .NET 2.0)

    this where I got the source from http://www.shudo.net/jit/perf/#linpack



    From that page:

    "All these versions of Linpack benchmark are not well optimized (ex. not blocked) and do not exploit potential performance of runtimes/platforms"

    which is basically your answer.

  • User profile image
    raptor3676

    AndyC wrote:

    From that page:

    "All these versions of Linpack benchmark are not well optimized (ex. not blocked) and do not exploit potential performance of runtimes/platforms"

    which is basically your answer.



    But that is the point! both version runned the same platform (.NET2.0) the only difference where the compiler used 1.1 vs 2.0 and that has nothing to do with Linpack

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.