对于60 fps,偶尔会有10毫秒的延迟吗?

时间:2012-01-10 22:56:46

标签: c# xna

在我的XNA游戏中,我的计算机(2.5 Ghz双核Intel Centrino 2)在调试模式下运行大约需要10毫秒。它只会每隔几分钟运行一次,它基本上只是整数数学/按位运算,虽然很多。

我可以直接在我的Update方法中调用它,还是会造成太多延迟?我的Update方法的其余部分不应超过5毫秒(尚未创建,因此无法配置)。只要按顺序调用所有步骤,我也可以将它分成几个帧。

主要问题是:这是否值得创建一个单独的线程,或者延迟与60fps无关?

3 个答案:

答案 0 :(得分:5)

如果可能的话,我会为可能导致绘图延迟的任何事情创建一个单独的线程。随着您的游戏不断发展并获得新功能,最好始终牢记性能,而不是回溯代码并尝试解耦从一开始就设计得更好的元素。

答案 1 :(得分:3)

我会使用一个单独的线程,如果代码是FPS关键,你不能保证代码需要多长时间......而且...渲染帧并不重要。

您的系统可能需要10毫秒,但其他系统呢?甚至那可能会在某个时候引起明显的紧张。

答案 2 :(得分:1)

让我们检查一下数学

60 Frames per second = 16.666(ms) theoretically available per frame.

现在取决于你每帧还在做什么,这是可以接受的。

更重要的是,这项操作对未来的框架至关重要吗?

如果是这样,你没有太多选择(除了尽可能地优化它)。

如果没有,那么你应该为这个操作产生一个单独的线程。