Вы должны попробовать веревки . Сайт скудный по деталям, но есть отличная статья здесь с лучшим описанием и некоторыми хорошими тестами, сравнивающими производительность при добавлении .
Я на самом деле не использовал пакет с веревками, у меня не было достаточно веских оправданий. Тем не менее, выглядит многообещающе.
Редактировать: Дополнительная информация о тесте
Я скачал класс PerformanceTest
из статьи о веревках и добавил тесты для StringBuilder
в дополнение к StringBuffer
. Улучшение производительности на StringBuilder
кажется незначительным.
Я скачал тестовый код из статьи о веревках и изменил тест, включив в него StringBuilder
и StringBuffer
.
Append plan length: 260
[StringBuilder] Average= 117,146,000 ns Median= 114,717,000ns
[StringBuffer] Average= 117,624,400 ns Median= 115,552,000ns
[Rope] Average= 484,600 ns Median= 483,000ns
Append plan length: 300
[StringBuilder] Average= 178,329,000 ns Median= 178,009,000ns
[StringBuffer] Average= 217,147,800 ns Median= 216,819,000ns
[Rope] Average= 252,800 ns Median= 253,000ns
Append plan length: 500
[StringBuilder] Average= 221,356,200 ns Median= 214,435,000ns
[StringBuffer] Average= 227,432,200 ns Median= 219,650,000ns
[Rope] Average= 510,000 ns Median= 507,000ns
Разница между StringBuilder и StringBuffer не так уж велика. Для поставленной задачи Веревки кажутся здесь чистой победой.