Форма Windows, Получение FPS? - PullRequest
3 голосов
/ 18 июля 2011

Я пишу приложение для Windows, которое отображает данные в реальном времени на карте.Есть ли простой способ получить FPS (кадров в секунду)?

Спасибо, в Google не могу найти многоЭто C #, .NET 4.0.

Ответы [ 2 ]

4 голосов
/ 18 июля 2011

Расчет FPS может быть чем-то простым (если точность не имеет первостепенного значения):

DateTime _lastCheckTime = DateTime.Now;
long _frameCount = 0;

// called whenever a map is updated
void OnMapUpdated()
{
    Interlocked.Increment(ref _frameCount);
}

// called every once in a while
double GetFps()
{
    double secondsElapsed = (DateTime.Now - _lastCheckTime).TotalSeconds;
    long count = Interlocked.Exchange(ref _frameCount, 0);
    double fps = count / secondsElapsed;
    _lastCheckTime = DateTime.Now;
    return fps;
}

Установите таймер обновления так, чтобы он вызывал GetFps() каждую секунду для получения значения.Обратите внимание, что к этому методу не должно быть одновременных вызовов, так как каждый вызов сбрасывает счетчики и время начала.

0 голосов
/ 18 июля 2011

Как вы рисуете свою карту?Все зависит от того, какую технологию вы используете ... Мои рекомендации касаются управляемого DirectX, если вы интенсивно работаете с графикой.

Попробуйте получить больше информации здесь: http://www.programmersheaven.com/2/time-fps

...