Как изменить содержимое FloatBuffer, сохраняя производительность?

Я попытался использовать

floatbuffer.put(float[]); 

Но поскольку я обрабатываю более 200 квадратов, все с различными координатами текстуры, которые обновляются каждый кадр, мои кадры резко падают, и игра становится слишком далекой, чтобы быть текучей.

Я думал, что метод, упомянутый на badlogicgames.com, о, вместо этого использует floatbuffer, использует intbuffer, но, это то же самое, равное медленное в момент метода «put» из буфера.

Так, как я мог бы обновить все мои floatbuffers с лучшей производительностью?

EDIT: я решил свою проблему, метод «put» сам по себе не медленный, проблема в том, что новый float инициализируется для каждого floatbuffer, вместо этого я просто изменяю значение каждого элемента, содержащегося в floatarray, и что Избегает многих действий GC .. ну, я думаю.

Существует несколько способов повышения производительности. Вкратце, вот несколько:

1) Инициализируйте floatbuffer и применяйте преобразование для каждого кадра: – Если ваши квадраты перемещаются по экрану, поместите их один раз в floatbuffer и затем примените отдельное преобразование матрицы к каждому из них. В этом методе вы заполняете floatbuffer один раз и просто обновляете преобразования каждый ход.

2) Поместите только уникальные формы в floatbuffer. Если любой из ваших квадратов является дубликатом друг друга, вызовите один и тот же буфер для каждого кадра, чтобы сохранить память.

3) Используйте объекты буфера вершин и объекты буфера индексирования. Похоже, что вы это сделали, но сохраните данные в буфере вершин и вызовите вершины, используя индексы массива.

Если у вас все еще есть проблемы, я рекомендую взглянуть на этот учебник: http://www.learnopengles.com/android-lesson-one-getting-started/