Я сейчас работаю над приложением для Android в области компьютерной графики. Как вы, наверное, знаете, CG - это все о пикселях и векторах (в 3D).
Моя проблема в настоящее время заключается в том, что мне приходится вычислять несколько векторов для каждого пикселя (обычно около Full-HD: 1920 x 1080) несколько разВторой. Это оставляет меня с ... множеством Vec3D
-объектов (по 32 байта каждый). Это не так много памяти (<100 МБ), но каким-то образом Android-сборщик мусора не может жить без очистки, которая занимает около 100 мс (безумно долго). </p>
Сначала я думал, что все эти объекты будут оптимизированыKotlin
- Компилятор, поэтому я не беспокоился об этом при разработке - но, похоже, дело не в этом!
Как вы можете себе представить, большую часть времени GC работает вместо моего приложения. Я уже думал о Vec3D-Factory
, который создает объект Vec3D
-Object только один раз, но поскольку Vec3D
использует три double
переменные, я не думаю, что это слишком сильно изменится.
Есть идеи?