Hello,

> Indeed, if I compare Windows CPython 2.5 numbers and Linux CPython 2.5
> numbers, Windows CPython 2.5 is ~1.2 times faster, most likely because
> Jim's laptop is faster. With a single exception. StringMappings test,
> calling .upper() and .lower() methods on string, is 4 times faster on
> Linux. This could be glibc doing smart optimization. I decided to
> exclude this test in comparisons below.

Our ToUpper and ToLower implementations are completely managed, as the
unicode rules for .NET are slightly different than the standard Unicode
ones (Windows unicode string rules predated Unicode).

Since this is managed code, and managed code tends to be slower than C++
code, my guesses are:

        * Mono is not taking something important into consideration.

          Possible, but doubtful at this point.

        * .NET's implementation lives in C++ and the overhead is 
          probably due to the managed to unmanaged transition.

          For example, memset/memcpy are typically faster if written
          in managed code for blocks of up to 16k bytes or so (I forget
          the details, but they are in some mailing list).

Miguel.

_______________________________________________
users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to