В конечном счете, мы решили, что мы боремся с трудностями, заставляя приложение делать то, для чего оно действительно не было создано, или, по крайней мере, не стоит ресурсов разработки, чтобы продолжать идти по этому пути.
Наше текущее решение - оставить приложение как есть и жить с реальностью пауз сборки мусора, чтобы мы не мешали будущей разработке нашего приложения с безумной оптимизацией. Позвольте Java делать то, для чего он предназначен.
Чтобы остановить паузы, которые вызывают пропуски кадров, мы вместо этого решили создать второе, крошечное буферное приложение, управляемое нашим основным приложением через IPC.