我正在编写一个在地图上显示实时数据的Windows应用程序。有没有一种简单的方法来获得FPS(每秒帧数)?
谢谢,谷歌上找不到多少。这是C#,.NET 4.0。
答案 0 :(得分:4)
计算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()
以获取值。请注意,不应该对此方法进行并发调用,因为每次调用都会重置计数器和开始时间。
答案 1 :(得分:0)
你是如何绘制地图的?这一切都取决于您正在使用的技术......如果您正在进行图形密集型工作,我的建议将用于托管DirectX。
尝试在此处获取更多信息:http://www.programmersheaven.com/2/time-fps