newsare.net
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшенКонкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен генерировать сотни мегабайт мусора в секунду - даже если сам результат никому не нужен.И казалось бы, проблема конкатенации строк в Java давно решена. Джунам говорят: используй StringBuilder и будет тебе щастье. А статьи десятилетней давности сравнивают + и append() в бенчмарках и ставят точку. В сегодняшней статье я копнул немного глубже и оказалось, что реальность сложнее. Вред не исчез - он принял новые, менее очевидные формы. Заглянуть Read more











