Мне нужно пройти х / у.Я просто использовал java.awt.Point.Я делаю это много, учитывая, что это характер приложения, но тонны медленнее, чем обычные массивы.Я также попытался создать свою собственную «FastPoint», которая представляет собой просто int x / y и очень простой конструктор классов, который тоже очень медленный.
Время в миллисекундах.
java.awt.Point: 10374
FastPoint: 10032
Массивы: 1210
public class FastPoint {
public int x;
public int y;
public FastPoint(int x, int y) {
this.x = x;
this.y = y;
}
}
Jvisualvm говорит, что Point (либо awt, либо моя) использует по сравнению с тоннами памятик простому массиву int [].
Я полагаю, это просто накладные расходы из-за необходимости создания объекта вместо базового типа?Есть ли способ настроить или оптимизировать этот класс Point?Я уже переключился на базовые массивы int (которые теперь намного быстрее), но просто пытаюсь понять, почему это медленно, и если есть что-то, что я могу с этим поделать?
Тестовый код:
for (int i = 0; i < maxRuns; i++) {
point = new Point(i,i);
}
for (int i = 0; i < maxRuns; i++) {
a[0] = i; a[1] = i;
}