>[оверквотинг удален]
>
>
>Console.WriteLine ("String length: {0}; Elapsed time: {1}ms", result.Length, watch.ElapsedMilliseconds) ;
> }
> }
>}
>
>C2Q Q6600/Windows: String length: 1300000; Elapsed time: 10ms
>C2D E6300/FreeBSD/Mono JIT compiler version 2.4.2.3: String length: 1300000; Elapsed time: 63ms
>Хех, у меня на Java ~60 мс для 13000000 символов (в десять раз больше, чем у вас):
public class StrBench4 {
public static void main(String[] arg) {
final int TEST_COUNT = 10;
final int COUNT = 1000000;
final String a = "Маша", b = "мыла", c = "раму!";
for (int tests = 1; tests <= TEST_COUNT; tests++) {
StringBuilder sb = new StringBuilder((a.length() + b.length() + c.length()) * COUNT);
long begin = System.currentTimeMillis();
for (int cnt = COUNT; --cnt >= 0;) {
sb.append(a).append(b).append(c);
}
long end = System.currentTimeMillis();
System.out.printf("Тест №%d\nРезультат: %.78s — длина строки %s символов\nВремя выполнения %d мс.\n", tests, sb, sb.length(), (end - begin));
}
}
}
Вывод:
Тест №1
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 84 мс.
Тест №2
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 74 мс.
Тест №3
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №4
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №5
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №6
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 43 мс.
Тест №7
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №8
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №9
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Тест №10
Результат: Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму!Машамылараму! — длина строки 13000000 символов
Время выполнения 42 мс.
Эта ваша Mono сливает Яве в десять раз!
$ java -version
openjdk version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b17)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
% uname -rsm
FreeBSD 8.0-STABLE amd64
% dmesg | grep AMD
CPU: AMD Phenom(tm) II X4 810 Processor (2594.47-MHz K8-class CPU)
Origin = "AuthenticAMD" Id = 0x100f42 Stepping = 2
AMD Features=0xee500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM,3DNow!+,3DNow!