рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕реНрдЯреНрд░рд┐рдВрдЧрдмреНрдпреВрд▓рд░ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрдлрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЬрд╛рд╡рд╛.рд▓рдВрдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рд╕реНрдкрд╖реНрдЯ рддрдереНрдп
рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИрдВред рдореБрдЦреНрдп рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рд╣рдо рдЕрдХреНрд╕рд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ ред рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рд╣рдордиреЗ рдХрд┐рд╕ рд╡рд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛, рдпрд╣ рдЗрд╕ рддрд░рд╣ рд░рд╣реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдбрд┐рдЬрд╛рдЗрди:
String st = "";
st += "";
рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдорд╛рд╢рд╛рд╢рд╛" рдпреБрдХреНрдд рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдореВрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрджрд┐ рдПрдХ рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХрдИ рд╕рдорд╡рд░реНрддреА рдСрдкрд░реЗрд╢рди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдПрдХ рдЧрд╣рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рдХрд╛рдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЕрдЧрд░ рд╣рдореЗрдВ рдореНрдпреВрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рдореЗрдВ рдЕрдиреНрдп рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдерд╛ рд╡рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧрд░рдмрдлрд╝рд░ рдерд╛ рдФрд░ рдПрдХ рдирдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрд░рдмрд░реНрд▓ (рд╕рдВрд╕реНрдХрд░рдг 1.5 рдХреЗ рдмрд╛рдж рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдХрд╣рддрд╛ рд╣реИ , рд╕реНрдЯреНрд░рд┐рдВрдЧ -рдмрдлрд╝рд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИред
рддреБрдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ
рдЦреИрд░, рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА, рдХрдо рдкреНрд░рднрд╛рд╡реА, рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирдВрдмрд░ рдЪрд╛рд╣рд┐рдПред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрджреНрднреБрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп "рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ" рд╕реНрдЯреНрд░рд┐рдВрдЧрд░рдлрд╝рд░ / рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ? рдЕрдиреНрдп рд▓реЛрдЧ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдХреЛрдИ рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рд╕реМ рд╣рдЬрд╝рд╛рд░ рд╕рдореНрдореЗрд▓рди ... рд▓реЗрдХрд┐рди рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, рдХреНрдпрд╛ рдХреЛрдИ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИ?
рдХрд╕реМрдЯреА
рд╣рдордиреЗ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ "onegin.txt" рд╕реЗ рд▓рд╛рдЗрдиреЗрдВ рдкрдврд╝реАрдВ (рд╣рдо рдорджрдж рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ)ред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 297463 рдмрд╛рдЗрдЯреНрд╕, utf-8, 27195 рд╢рдмреНрдж рд╣реИред рд╕рднреА рддреАрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╡рд┐рднрд┐рдиреНрди JVM рдФрд░ рджреЛ OS рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред Linux (I рдЙрдкрдпреЛрдЧ LinuxMint 9 рдРрд╕рд╛ рдЕрд▓рдВрдХреГрдд рдЙрдмрдВрдЯреВ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдирд╣реАрдВ рдкрддрд╛) рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдФрд░ рд╡рд┐рди XP рдкреНрд░реЛ SP3ред рджреЛрдиреЛрдВ OS 32-рдмрд┐рдЯ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдЯрдо N280 рдХреЗ рд╕рд╛рде рдиреЗрдЯрдмреБрдХ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рд╣рдо рд░рд┐рдХреЙрд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рд╡реГрддреНрддрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реА, рдХрд╣реАрдВ рднреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ:
package stringtest1;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main( String [] args) throws FileNotFoundException, IOException {
BufferedReader reader = new BufferedReader( new FileReader( "onegin.txt" ));
StringBuilder sb = new StringBuilder ();
String line = null ;
while ( (line = reader.readLine()) != null ) {
sb.append(line).append( "\n" );
}
reader.close();
String [] words = sb.toString().split( "\\s+" );
System. out .println( "Total words:" + words.length);
waitEnter();
long ts = System.nanoTime();
String buff = "" ;
//2 StringBuffer buff = new StringBuffer();
//3 StringBuilder buff = new StringBuilder();
for ( String word : words) {
buff += word + " " ;
//2&3 buff.append(word).append(" ");
}
long te =System.nanoTime();
System. out .println( "Complete, lenght:" + buff.length() + " elapsed time:" + (te - ts)/1e6 + "ms" );
}
private static void waitEnter() {
Scanner scan = new Scanner(System. in );
System. out .print( "Press Enter key." );
scan.nextLine();
}
}
* This source code was highlighted with Source Code Highlighter .
StringBuffer рдФрд░ StringBuilder рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рдХреА рдорд╛рдк 5 рдЧреБрдирд╛ рдХреА рдЧрдИ рдФрд░ рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИред
рдкрд░рд┐рдгрд╛рдо
рд▓рд┐рдирдХреНрд╕
рд╡рд░реНрдЧ | рдУрдкрди JDK 1.6.0_18 | рд╣реЙрдЯрд╕реНрдкреЙрдЯ 1.6.0_20 | JRockit 4.0.1 |
---|---|---|---|
рддрд╛рд░ | 27390ms | 26850ms | 26940ms |
StringBuffer | 35.55ms | 34.87ms | 15.41ms |
StringBuilder | 33.01ms | 31.78ms | 12.82ms |
рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреА
рд╡рд░реНрдЧ | рд╣реЙрдЯрд╕реНрдкреЙрдЯ 1.6.0_20 | JRockit 4.0.1 |
---|---|---|
рддрд╛рд░ | 55260ms | 45330ms |
StringBuffer | 19.38ms | 14.50ms |
StringBuilder | 16.83ms | 12.76ms |
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрджрд┐ рд╣рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддрд╛рд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ StringBuffer (рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ) рдФрд░ StringBuilder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдУрдкрди рдЬреЗрдбрдбреАрдХреЗ рд╕реЗ рдЬреЗрд╡реАрдПрдо рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рдХреНрдпреЛрдВ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реВрд░реНрдп рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрд░реЗрдХрд▓ рдореБрдбрд╝ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдФрд░ WinXP рдХреЗ рддрд╣рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдХреНрдпреЛрдВ рд╣реИред рдЯреЙрд▓реА рд╡рд┐рди рдЬреЗрд╡реАрдПрдо рдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдЬреЗрд╡реАрдПрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ ... рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЖрдЧреЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП:
JRockit Oracle рдХреА рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИред
рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реВрд░реНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдорд╢реАрди рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдм рдЦреБрдж рдУрд░реЗрдХрд▓ рдиреЗ рдЦрд░реАрджрд╛ рд╣реИред
рдУрдкрди рдЬреЗрдбрдбреАрдХреЗ - рдУрдкрди рд╕реЛрд░реНрд╕ рдЬреЗрдбреАрдХреЗ рд╕рди рджреНрд╡рд╛рд░рд╛ рдЦреБрд▓реЗ рдПрдХ рд╕рдордп рдореЗрдВ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред