1 Был ли обнаружен escape-анализ включенным в JConsole? Вам нужно убедиться, что вы используете виртуальную машину с параметром -server. Я полагаю, у вас это сработало, но я просто подумал, что проверю.
2 Я не думаю, что анализ побега поможет ситуации с Scala Actors. Вы можете увидеть большой выигрыш, если сделаете что-то вроде:
def act():Unit = {
val omgHugeObject = new OMGHugeObject();
omgHugeObject.doSomethingCrazy();
}
В приведенном выше примере EscapeAnalysis должен был сделать так, чтобы omgHugeObject
мог быть размещен в стеке вместо кучи и, таким образом, не создавал мусор. Я не думаю, что вполне вероятно, что анализ побега поможет с актерами. Их ссылки всегда "уходят" в подсистему актера.
3
Вы на последнем выпуске Scala? Была утечка памяти, которая, я считаю, была исправлена в последней версии. Это даже привело к тому, что Lift породил собственную библиотеку Actor, в которую вы можете заглянуть.
4 Вы можете попробовать сборщик мусора G1. Вы можете включить его с помощью:
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC