Оптимизация скорости работы кода, opengl
Требуется оптимизировать цикл, как я могу это сделать? Его задача - пробежаться по всему двухмерному массиву (условно, размер которого 50 * 50), и каждую ячейку отправить на рисовку в другой метод, hashTable вместо hashMap тк генерация идет в другом потоке. Как только он отправит весь массив на рисовку, то меняет буффер, и начинает по новой. Просто не знаю как починить 14фпс, но перерисовка всего массива вроде вменяемая тактика и нормальная практика в некоторых играх
public void loop() {
Hashtable<String, ByteBuffer> byteBuffer = WorldGenerator.GenerateByteBuffer();
Hashtable<String, BufferedImage> bufferedImage = WorldGenerator.GenerateBufferedImage();
int x = 0;
int y = 0;
boolean start = false;
WorldObjects[][] objects;
Physics thread = new Physics();
thread.setDaemon(true);
glfwSwapBuffers(glfwWindow);
glClear(GL_COLOR_BUFFER_BIT);
//пока окно не закрыто - каждый такт опрашивает glfw
while (!glfwWindowShouldClose(glfwWindow)) {
glfwPollEvents();
if (start == true) {
objects = thread.getWorldObjects();
TextureDrawing.draw(objects[x][y].path, objects[x][y].x, objects[x][y].y, byteBuffer.get(objects[x][y].path), bufferedImage.get(objects[x][y].path));
x++;
if (x == 50) {
y++;
x = 0;
}
if (y == 50) {
glfwSwapBuffers(glfwWindow);
y = 0;
x = 0;
}
}
//f1
else if (glfwGetKey(glfwWindow, 290) == 1) {
thread.start();
start = true;
}
}
}
Примечание: буффер изменяется практически каждый кадр (передвижение игрока, уничтожение чего либо, и тд)