Первоначально эта опция была добавлена для улучшения производительности SPECjBB.Прибыль обусловлена снижением требований к пропускной способности памяти между процессором и DRAM.Загрузка и хранение байтов в байте [] потребляет вдвое меньше пропускной способности по сравнению с символами в char [].
Однако это имеет свою цену.Код должен определить, является ли внутренний массив байтом [] или символом [].Это занимает процессорное время, и если рабочая нагрузка не ограничена памятью пропускная способность , это может вызвать снижение производительности.Существует также цена обслуживания кода из-за дополнительной сложности.
Поскольку не было достаточно рабочих нагрузок, подобных производственным, которые показали существенный выигрыш (кроме, возможно, SPECjBB), опция была удалена.
Есть еще один угол к этому.Опция уменьшает использование кучи.Для применимых строк это уменьшает использование памяти этими строками на 1/2.Этот угол не учитывался во время удаления опции.Для рабочих нагрузок, объем памяти которых ограничен ограничен (т. Е. Приходится работать с ограниченным пространством кучи, а сборщик мусора занимает много времени), этот параметр может оказаться полезным.
Если достаточно памяти объемМожно найти связанные с производством рабочие нагрузки, чтобы оправдать включение опции, затем возможно , вариант будет возвращен.
Редактировать 20.03.2013: Средний дамп кучи сервера занимает 25% пространства в строках.Большинство строк являются сжимаемыми.Если эта опция будет введена заново, она может сэкономить половину этого пространства (например, ~ 12%)!
Редактировать 3.10.2016: Функция, похожая на сжатые строки, возвращается в JDK9 JEP 254 .