Как и во всех проблемах с производительностью, редко бывает волшебная пуля.
Давление памяти - приложение запускается, но кучи в 512 м достаточно для размещения приложений, и она тратит половину времени запуска при работе с GC.
Посмотрите на любое из следующего:
1. -бербоз: gc
2. jstat -gcutil
2. jvisualvm - гораздо приятнее пользовательский интерфейс
Вы пытаетесь увидеть, сколько времени тратится в GC, ищите много событий полной сборки мусора, которые не освобождают большую часть кучи, т.е. 99% -> 95%.
Решение - больше кучи, больше ничего для этого нет.
Возможно, вы захотите попробовать -XX: + AggressiveHeap, чтобы заставить JVM максимизировать использование памяти на устройстве, проблема только в том, что только 1 ГБ памяти будет ограничено. Список всех опций JVM
Дисковый ввод-вывод - во время запуска система сама по себе не работает на уровне, близком к 100% ЦП (при условии, что 100% от одного ядра, запуск обычно однопоточный), тогда может быть некоторый дисковый ввод-вывод, который приложение делает это горлышко бутылки.
Используйте инструменты операционной системы, такие как монитор производительности Windows, для проверки дискового ввода-вывода. Возможно, это не приложение, вызывающее ввод-вывод, это может быть операция подкачки (сбой страницы)
Решение: либо исправить приложение (скорее всего), либо получить более быстрые диски / компьютер или больше физической памяти для коробки