У меня есть небольшая проблема с моей реализацией на Android. Я передаю некоторые вещи с OpenGL ES. И для каждого фрейма мне нужно обновить дату. Поэтому я решил поставить максимум FPS, чтобы избежать бесполезных вычислений.Проблема FPS на android
Но дело в том, что независимо от количества кадров в секунду, которое я ставлю, я не вижу никакой разницы. Даже если я ставлю 1 fps.
Вот немного для моего кода:
long now = SystemClock.elapsedRealtime(), diff;
diff = now - CURRENT_TIME;
if (diff < MILLISECOND_PER_FRAME)
{
try
{
wait(MILLISECOND_PER_FRAME - diff);
}
catch(Exception e)
{}
now = SystemClock.elapsedRealtime();
diff = now - CURRENT_TIME;
}
CURRENT_TIME = now;
Итак, что часть кода, кажется, не замедляет выполнение на всех. Любое предложение ?
И только я случай, если кто имеет сомнение, для X кадров в секунду, я вычисляю MILLISECOND_PER_FRAME в
MILLISECOND_PER_FRAME = (int)(1000.0f/X);
Решенные:
Хорошо, так что я решил эту проблему. Если кто-либо из вас хочет, чтобы поток спал в течение определенного периода времени в миллисекундах, используйте Thread.sleep (millis) ;. Эта функция влияет на поток, в котором он работает. И теперь я вижу большую разницу, когда я ставлю 1 к/с против 25 кадров в секунду.
Спасибо всем, кто посмотрел на этот вопрос.
Вы можете ответить на свой вопрос ниже. – Reno