Re: [Mono-dev] [Patch] to significantly shorten Char.cs
Hi Andreas, Sorry for the very long wait, I could only review your patch this week. The Is* patch is correct and indeed increase performance, please commit it. Thanks for the contribution, Rodrigo On Sun, Jun 29, 2008 at 7:37 PM, Andreas Nahr [EMAIL PROTECTED] wrote: Hi Rodrigo, very good suggestion ;) Attached is a patch that only contains the Is* changes. Happy Hacking Andreas *Von:* [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED] *Im Auftrag von *Rodrigo Kumpera *Gesendet:* Samstag, 28. Juni 2008 00:37 *An:* Andreas Nahr *Cc:* mono-devel *Betreff:* Re: [Mono-dev] [Patch] to significantly shorten Char.cs Andreas, How about splitting your patches in two? One with the lesser risky CheckParameter changes and other with the Is*** changes. The CheckParameter changes look lovely, go ahead commit then. I would like to do some testing on other changes, that are more comple and unfortunately I won't have time until late next week. I know it's more work on your side, but it makes the review process easier for both of us. Thanks, Rodrigo On Thu, Jun 26, 2008 at 6:24 PM, Andreas Nahr [EMAIL PROTECTED] wrote: Well the main improvement is the shortening of the String-Parameter methods. It does not affect performance negatively as far as I measured because the methods now get inlined but were too large before. I know that the code wasn't duplicated for performance reasons before, because I actually wrote that code. Well most of Char anyways... ;) IsWhiteSpace is now somewhat faster. Similar Prog from below (do not have the original anymore) went from 21 sec total to 16,5 sec (AMD 3,2Ghz XP) (testing one positive + one negative case). It simply saves some opcodes. public static void Main() { int tickCount = Environment.TickCount; for (int i = 0; i 0x3b9aca00; i++) { char.IsWhiteSpace('v'); } Console.WriteLine((int) (Environment.TickCount - tickCount)); tickCount = Environment.TickCount; for (int j = 0; j 0x3b9aca00; j++) { char.IsWhiteSpace(' '); } Console.WriteLine((int) (Environment.TickCount - tickCount)); } And no, IsWhiteSpace did not get optimized away ;) -Ursprüngliche Nachricht- Von: [EMAIL PROTECTED] [mailto:mono-devel-list- [EMAIL PROTECTED] Im Auftrag von Atsushi Eno Gesendet: Donnerstag, 26. Juni 2008 23:25 An: 'mono-devel' Betreff: Re: [Mono-dev] [Patch] to significantly shorten Char.cs I have some comments even without reading your application/octet-stream patch (I ususally don't read them). - Sometimes we have some code pieces that look like duplicates exactly because of performance improvements. - For performance improvements there should be some benchmark results with sources. Atsushi Eno Andreas Nahr wrote: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas - --- ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] [Patch] to significantly shorten Char.cs
Hi Rodrigo, very good suggestion ;) Attached is a patch that only contains the Is* changes. Happy Hacking Andreas Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von Rodrigo Kumpera Gesendet: Samstag, 28. Juni 2008 00:37 An: Andreas Nahr Cc: mono-devel Betreff: Re: [Mono-dev] [Patch] to significantly shorten Char.cs Andreas, How about splitting your patches in two? One with the lesser risky CheckParameter changes and other with the Is*** changes. The CheckParameter changes look lovely, go ahead commit then. I would like to do some testing on other changes, that are more comple and unfortunately I won't have time until late next week. I know it's more work on your side, but it makes the review process easier for both of us. Thanks, Rodrigo On Thu, Jun 26, 2008 at 6:24 PM, Andreas Nahr [EMAIL PROTECTED] wrote: Well the main improvement is the shortening of the String-Parameter methods. It does not affect performance negatively as far as I measured because the methods now get inlined but were too large before. I know that the code wasn't duplicated for performance reasons before, because I actually wrote that code. Well most of Char anyways... ;) IsWhiteSpace is now somewhat faster. Similar Prog from below (do not have the original anymore) went from 21 sec total to 16,5 sec (AMD 3,2Ghz XP) (testing one positive + one negative case). It simply saves some opcodes. public static void Main() { int tickCount = Environment.TickCount; for (int i = 0; i 0x3b9aca00; i++) { char.IsWhiteSpace('v'); } Console.WriteLine((int) (Environment.TickCount - tickCount)); tickCount = Environment.TickCount; for (int j = 0; j 0x3b9aca00; j++) { char.IsWhiteSpace(' '); } Console.WriteLine((int) (Environment.TickCount - tickCount)); } And no, IsWhiteSpace did not get optimized away ;) -Ursprüngliche Nachricht- Von: [EMAIL PROTECTED] [mailto:mono-devel-list- [EMAIL PROTECTED] Im Auftrag von Atsushi Eno Gesendet: Donnerstag, 26. Juni 2008 23:25 An: 'mono-devel' Betreff: Re: [Mono-dev] [Patch] to significantly shorten Char.cs I have some comments even without reading your application/octet-stream patch (I ususally don't read them). - Sometimes we have some code pieces that look like duplicates exactly because of performance improvements. - For performance improvements there should be some benchmark results with sources. Atsushi Eno Andreas Nahr wrote: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas - --- ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list Char.patch Description: Binary data ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] [Patch] to significantly shorten Char.cs
Andreas, How about splitting your patches in two? One with the lesser risky CheckParameter changes and other with the Is*** changes. The CheckParameter changes look lovely, go ahead commit then. I would like to do some testing on other changes, that are more comple and unfortunately I won't have time until late next week. I know it's more work on your side, but it makes the review process easier for both of us. Thanks, Rodrigo On Thu, Jun 26, 2008 at 6:24 PM, Andreas Nahr [EMAIL PROTECTED] wrote: Well the main improvement is the shortening of the String-Parameter methods. It does not affect performance negatively as far as I measured because the methods now get inlined but were too large before. I know that the code wasn't duplicated for performance reasons before, because I actually wrote that code. Well most of Char anyways... ;) IsWhiteSpace is now somewhat faster. Similar Prog from below (do not have the original anymore) went from 21 sec total to 16,5 sec (AMD 3,2Ghz XP) (testing one positive + one negative case). It simply saves some opcodes. public static void Main() { int tickCount = Environment.TickCount; for (int i = 0; i 0x3b9aca00; i++) { char.IsWhiteSpace('v'); } Console.WriteLine((int) (Environment.TickCount - tickCount)); tickCount = Environment.TickCount; for (int j = 0; j 0x3b9aca00; j++) { char.IsWhiteSpace(' '); } Console.WriteLine((int) (Environment.TickCount - tickCount)); } And no, IsWhiteSpace did not get optimized away ;) -Ursprüngliche Nachricht- Von: [EMAIL PROTECTED] [mailto:mono-devel-list- [EMAIL PROTECTED] Im Auftrag von Atsushi Eno Gesendet: Donnerstag, 26. Juni 2008 23:25 An: 'mono-devel' Betreff: Re: [Mono-dev] [Patch] to significantly shorten Char.cs I have some comments even without reading your application/octet-stream patch (I ususally don't read them). - Sometimes we have some code pieces that look like duplicates exactly because of performance improvements. - For performance improvements there should be some benchmark results with sources. Atsushi Eno Andreas Nahr wrote: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas - --- ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] [Patch] to significantly shorten Char.cs
I have some comments even without reading your application/octet-stream patch (I ususally don't read them). - Sometimes we have some code pieces that look like duplicates exactly because of performance improvements. - For performance improvements there should be some benchmark results with sources. Atsushi Eno Andreas Nahr wrote: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] [Patch] to significantly shorten Char.cs
Your patch have a huge ammount of useless whitespace changes, these make reviews a lot hard. Please provide some benchmarks so we can run it locally and see the performance improvements. I would say that moving the argumento checks to a funcion is a bad idea. We should move the exception raising part, thou. 2008/6/26 Andreas Nahr [EMAIL PROTECTED]: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
Re: [Mono-dev] [Patch] to significantly shorten Char.cs
Well the main improvement is the shortening of the String-Parameter methods. It does not affect performance negatively as far as I measured because the methods now get inlined but were too large before. I know that the code wasn't duplicated for performance reasons before, because I actually wrote that code. Well most of Char anyways... ;) IsWhiteSpace is now somewhat faster. Similar Prog from below (do not have the original anymore) went from 21 sec total to 16,5 sec (AMD 3,2Ghz XP) (testing one positive + one negative case). It simply saves some opcodes. public static void Main() { int tickCount = Environment.TickCount; for (int i = 0; i 0x3b9aca00; i++) { char.IsWhiteSpace('v'); } Console.WriteLine((int) (Environment.TickCount - tickCount)); tickCount = Environment.TickCount; for (int j = 0; j 0x3b9aca00; j++) { char.IsWhiteSpace(' '); } Console.WriteLine((int) (Environment.TickCount - tickCount)); } And no, IsWhiteSpace did not get optimized away ;) -Ursprüngliche Nachricht- Von: [EMAIL PROTECTED] [mailto:mono-devel-list- [EMAIL PROTECTED] Im Auftrag von Atsushi Eno Gesendet: Donnerstag, 26. Juni 2008 23:25 An: 'mono-devel' Betreff: Re: [Mono-dev] [Patch] to significantly shorten Char.cs I have some comments even without reading your application/octet-stream patch (I ususally don't read them). - Sometimes we have some code pieces that look like duplicates exactly because of performance improvements. - For performance improvements there should be some benchmark results with sources. Atsushi Eno Andreas Nahr wrote: The attached patch reduces code duplication in Char by more than 130 lines and improves the performance of some methods a little bit. Somebody please have a short look... Happy Hacking Andreas - --- ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list ___ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list