Java 6-tal string-ek kezelésének sebessége témakör. String-eket szeretnénk összefűzni, valami oknál fogva sokat.
2 megoldást hasonlítok össze:
- string-ek konkatenálása: str1 + str2
- StringBuilder osztály használata: sb.append(str1).append(str2)
A próba során 20 darab átlagosan 25 hosszú string-et, 5000 szer egymás után fűzök, az eredmény:
- 203360 ms
- 31 ms
Java kód:
String all = "";
final int count = 5000;
// String concat example
long t = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
all += s;
}
}
System.out.println((System.currentTimeMillis() - t) + " ms");
// StringBuilder example
t = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
stringBuilder.append(s);
}
}
all = stringBuilder.toString();
System.out.println((System.currentTimeMillis() - t) + " ms");
Nincsenek megjegyzések:
Megjegyzés küldése