我正在寫一個Windows應用程序,它在地圖上顯示實時數據。有沒有簡單的方法來獲得FPS(幀每秒)?Windows窗體,獲取FPS?
謝謝,在google上找不到太多東西。這是C#,.NET 4.0。
我正在寫一個Windows應用程序,它在地圖上顯示實時數據。有沒有簡單的方法來獲得FPS(幀每秒)?Windows窗體,獲取FPS?
謝謝,在google上找不到太多東西。這是C#,.NET 4.0。
計算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()
每第二要獲得價值。請注意,此方法不應該有併發呼叫,因爲每個呼叫都會重置計數器並啓動時間。
你是如何繪製你的地圖?這一切都取決於您使用的是什麼技術......如果您正在進行圖形密集型工作,我的推薦工作將用於託管DirectX。
試圖讓這裏更多的信息:http://www.programmersheaven.com/2/time-fps
你的鏈接已經死亡。 – LarsTech
你用什麼類型的數據在地圖上顯示?你能否請進一步解釋一下。 –
我通過第三方使用購買的映射控件。我們以每秒30次的速度在全國範圍內顯示實時功耗。 – dave2118