Обработка становится выше max frameRate - PullRequest
0 голосов
/ 13 декабря 2018

Так что я недавно совершил прорыв в Neural Nets и сделал пару игр с NN AI.Для обучения я использую frameRate(100000), чтобы увеличить частоту кадров.Однако, проверяя с помощью println(frameRate), я вижу, что средняя частота кадров составляет около 270. Удаление всех дисплеев (в значительной степени рисует фигуры) увеличивает ее примерно до 300.

Я хотел бы сделать это быстрее, я заметилдокументация гласит, что frameRate() достигает только того уровня, который может обработать ваш процессор, но при проверке с помощью диспетчера задач я вижу, что программа использует только около 20% моего процессора и только 90 МБ.Я увеличил максимальный объем доступной памяти до 4096 МБ в настройках, но это, похоже, не имело значения.

Так что я думаю, мой вопрос заключается в том, как разрешить обработке использовать больше моего ЦП для более быстрой работыframeRate [или есть лучший вариант, кроме «оптимизации моего кода», потому что это уже довольно оптимизированная IMO (не говоря уже о том, что он не может быть лучше)].

1 Ответ

0 голосов
/ 13 декабря 2018

Имейте в виду, что даже при очень высокой частоте кадров механизмы, вызывающие draw(), имеют некоторые накладные расходы, которые вам не нужны, если вы ничего не рисуете.Ваш компьютер может ограничивать частоту кадров в зависимости от настроек графики.Также обратите внимание, что сам оператор println() очень медленный, поэтому его не следует использовать для непрерывной печати частоты кадров.

Если вы ничего не рисуете (или если вы рисуете только одинкадр), вы, вероятно, можете просто использовать базовый цикл вместо функции draw().

Вместо этого попробуйте что-то вроде этого:

boolean running = true;
while(running){
  // do your processing
  if(done){
    running = false;
  }
}
...