Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.21.0
-
None
-
None
Description
./hadoop-0.21.0/mapred/src/tools/org/apache/hadoop/tools/rumen/LoggedTaskAttempt.java line:362 ./chukwa-0.4.0/src/java/org/apache/hadoop/chukwa/datacollection/writer/localfs/LocalWriter.java line:249
4 consecutive replace() is called to remove the special characters. It's 3+ times slower than using a for loop
replace them all.
e.g. - str.replace('a', '#'); - str.replace('b', '%'); + StringBuilder sb = new StringBuilder( str.length() ); + for (int i=0; i < str.length(); i++) + { + char c = str.charAt(i); + if ( c == 'a' ) + sb.append('#'); + else if ( c== 'b' ) + sb.append('%'); + else + sb.append(c); + } + str = sb.toString();
This bug has the same problem as the MySQL bug : http://bugs.mysql.com/bug.php?id=45699
Attachments
Issue Links
- is duplicated by
-
MAPREDUCE-2343 repeated replace() function calls damage the performance
- Open