2012-07-13 51 views
1

在相同的代碼我有:XNA高CPU使用具有不同TargetElapsedTime

5-10%的CPU使用率與IsFixedTimeStep = trueTargetElapsedTime = TimeSpan.FromSeconds(1/60f)

50-60%的CPU使用率與IsFixedTimeStep = trueTargetElapsedTime = TimeSpan.FromSeconds(1/30f)

由降低幀速率應該期望更少的CPU使用率。 我嘗試過使用類似結果的不同代碼。 任何人都知道原因?

回答

0

如果我必須猜測(我必須這樣做,因爲您提供的信息非常少),我會說這是GPU和CPU之間的交互。請參閱this blog post

基本上,在60 FPS時,您可能會受到GPU限制。 CPU處於閒置狀態,等待GPU繪製一幀,然後再開始繪製另一幀。你可能會丟幀。

在30 FPS時,GPU能夠跟上,因此CPU必須更頻繁地發送幀。

但是,這只是一個猜測。你必須測試你的代碼來正確地檢查這些事情。