From d0c9930d89739829b92571c9712aec0a9ac0a5ce Mon Sep 17 00:00:00 2001 From: Thomas Fletcher Date: Thu, 23 Mar 2006 06:23:09 +0000 Subject: [PATCH] Update to avoid converting entire strings to lower case before performing compare. Significant performance gains on larger binaries: Original (time to sort the symbol array used by the ElfHelper class): - Sorting 53580 symbols took 6203ms Modified (traded toLowerCase for compareToIgnoreCase) - Sorting 53580 symbols took 828ms --- .../utils/org/eclipse/cdt/utils/elf/SymbolSortCompare.java | 6 +++--- .../org/eclipse/cdt/utils/macho/SymbolSortCompare.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/elf/SymbolSortCompare.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/elf/SymbolSortCompare.java index 4f14a25c296..51cba9c99fa 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/elf/SymbolSortCompare.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/elf/SymbolSortCompare.java @@ -15,8 +15,8 @@ import java.util.Comparator; public class SymbolSortCompare implements Comparator { public int compare( Object o1, Object o2 ) { - String s1 = o1.toString().toLowerCase(); - String s2 = o2.toString().toLowerCase(); + String s1 = o1.toString(); + String s2 = o2.toString(); while( s1.length() > 0 && s1.charAt( 0 ) == '_' ) s1 = s1.substring( 1 ); @@ -24,7 +24,7 @@ public class SymbolSortCompare implements Comparator { while( s2.length() > 0 && s2.charAt( 0 ) == '_' ) s2 = s2.substring( 1 ); - return s1.compareTo( s2 ); + return s1.compareToIgnoreCase( s2 ); } } diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/SymbolSortCompare.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/SymbolSortCompare.java index 91a5528d986..667d7141de2 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/SymbolSortCompare.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/macho/SymbolSortCompare.java @@ -15,8 +15,8 @@ import java.util.Comparator; public class SymbolSortCompare implements Comparator { public int compare( Object o1, Object o2 ) { - String s1 = o1.toString().toLowerCase(); - String s2 = o2.toString().toLowerCase(); + String s1 = o1.toString(); + String s2 = o2.toString(); while( s1.length() > 0 && s1.charAt( 0 ) == '_' ) s1 = s1.substring( 1 ); @@ -24,7 +24,7 @@ public class SymbolSortCompare implements Comparator { while( s2.length() > 0 && s2.charAt( 0 ) == '_' ) s2 = s2.substring( 1 ); - return s1.compareTo( s2 ); + return s1.compareToIgnoreCase( s2 ); } }