[Mono-dev] [PATCH] String.cs

Phil Garcia phil at thinkedge.com
Mon May 11 22:34:54 EDT 2009

 Attached is a benchmark program that runs each test case ten million
times. Overall the benchmark for the managed version executes 1.35% faster
than the unmanaged one. Also attached is a chart showing the relative change
in performance for each test case.

I believe this demonstrates that overall the patch does not compromise


On Sun, May 10, 2009 at 9:46 PM, Atsushi Eno <
atsushieno at veritas-vos-liberabit.com> wrote:

> Hello,
> That is a nice challenge :)
> I had a look at the test you attached, and noticed that it counts
> only the time for the entire set of the split operations.
> What about the *each* of the cases?
> Atsushi Eno
> Phil Garcia wrote:
>> Yes, I have performed some benchmark testing. Attached is a copy of the
>> benchmark program. It's runs most of the existing test cases for the Split
>> method in a loop a million times.
>>  The results between the managed and unmanaged versions are statistically
>> the same. The unmanaged version seems to be slightly faster by 1.4%. The
>> unmanaged version was never faster than the managed version in all the
>> benchmark runs.
>>  I only have an ESXi virtual environment (running only two guests) to run
>> the benchmark so my sampling error is higher than if tested on a dedicated
>> machine. I would appreciate some independent verification, if necessary.
>>  Phil
>> (aka tgiphil on #monodev)
>> On Wed, May 6, 2009 at 6:35 AM, Rafael Teixeira <monoman at gmail.com<mailto:
>> monoman at gmail.com>> wrote:
>>    Do you have some benchmarks comparing the two versions? Although we
>>    really like the idea of having less-and-less unmanaged code in the
>>    system class libraries, we need to be sure the solution does not
>>    affect performance too badly.
>>    Thanks for your efforts so far,
>>    On Wed, May 6, 2009 at 7:03 AM, Phil <mono at thinkedge.com
>>    <mailto:mono at thinkedge.com>> wrote:
>>        Hi! This is my first submission to Mono.
>>                The attached patch replaces the unmanaged version of the
>>        String.InternalSplit() method with a managed
>>        implementation. This is a direct port from the existing C code
>>        to C#. I tested this against the 2.0 and 1.1 profiles and there
>>        were no regressions. This patch is contributed under the X11
>>        license.
>>                I hope it can be incorporated into Mono.
>>                Phil
>>                BTW. This is the first patch submission from the MOSA
>> Project team.
>>        _______________________________________________
>>        Mono-devel-list mailing list
>>        Mono-devel-list at lists.ximian.com
>>        <mailto:Mono-devel-list at lists.ximian.com>
>>        http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>    --    Rafael "Monoman" Teixeira
>>    ---------------------------------------
>>    "To be creative means to be in love with life. You can be creative
>>    only if you love life enough that you want to enhance its beauty,
>>    you want to bring a little more music to it, a little more poetry to
>>    it, a little more dance to it."
>>    Osho
>> ------------------------------------------------------------------------
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090511/06cdf467/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: StringSplit.png
Type: image/png
Size: 10500 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090511/06cdf467/attachment-0001.png 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Test.cs
Type: application/octet-stream
Size: 2397 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20090511/06cdf467/attachment-0001.obj 

More information about the Mono-devel-list mailing list