Android использует сжатие строк за кулисами?
Я проанализировал память моего приложения для Android на Android 28 и обнаружил, что большая часть его используется только для строк:
Очевидно, я ищу способы уменьшения потребления памяти. Таким образом, идея состоит в том, чтобы перейти от строк UTF-16 к UTF-8, чтобы сэкономить примерно 50%.
Я был очень впечатлен тем, как работает сжатие строк в Java 9: https://www.baeldung.com/java-9-compact-string
Так как я могу видеть byte[]
(не char[]
Интересно, Android использует то же самое за сценой? Если нет, то каковы потенциальные проблемы с тем, чтобы сделать примерно то же самое в области приложения (есть my.app.String
класс с компактным импл).
PS. Я профилировал это на Android 24, и я могу видеть char[]
выделяются:
Означает ли это, что сжатие строк было реализовано / включено после Android 24?