Ну смотрите: сама по себе остановка компиляции может и не быть проблемой. Некоторые приложения вообще запускают с -Xint и горя не знают.
Если всё-таки попробовать найти в этом какую-то проблему, то можно, наверное, найти несколько возможных причин.
- нестабильная компиляция. Т.е. JIT делает предположения, которые когда-то перестают быть верными. Например, проверка на null не возвращала true, а потом стала, а потом наоборот и т.д.
- есть генерируемый код, который активно вызывается. Если код будет постоянно появляться, использоваться, компилироваться, а потом выкидываться - Code Cache может наполняться очень активно.
- В качестве маловероятного сценария, но всё же - может быть утечка памяти в JIT, на которую вы наткнулись.
Чтобы это диагностировать, можно попробовать: -XX:+PrintCompilation, -XX:+LogCompilation и подобное
окей, спасибо, почитаю
> Если код будет постоянно появляться, использоваться, компилироваться, а потом выкидываться
А может быть такое что код который активно использовался больше не используется?