当前位置: 首页 > 面试题库 >

如何使服务器正确打勾?

董康平
2023-03-14
问题内容

我正在尝试使游戏服务器在一段时间后更新。

import time
last_time = time.time()
tick = 1
time_since_last_update = 0
while True:
    new_time = time.time()
    dt = new_time - last_time
    time_since_last_update += dt
    last_time = new_time
    if time_since_last_update > tick:
        print("Magic happens")
        time_since_last_update = 0

当我这样做时,python在其中一个内核上消耗了100%的计算能力。我真的不明白为什么会这样,如果可能的话如何解决。


问题答案:

time.sleep(0.01)在每次轮询之间插入一个10毫秒的毫秒,否则您的循环将持续轮询时间,而不会释放CPU的电源。

编辑:更好,仅在需要时等待一次。如果发生严重的CPU过载,则等待时间可能为负,在这种情况下,可以立即触发2个操作。并不断地重新计算目标时间,以避免浮点累积错误。

import time
start_time = time.time()
tick = 1.0  # 1 second

tick_count = 0

while True:
    new_time = time.time()
    tick_count += 1
    targeted_time = start_time + tick*tick_count

    time_to_wait = targeted_time - new_time

    if time_to_wait>0:
        time.sleep(time_to_wait)
    print("Magic happens,waited %f seconds" % time_to_wait)


 类似资料:
  • 问题内容: 我需要从 网址获得回调后关闭服务器。使用通常的 HTTP API, 关闭服务器当前支持 API功能,但是使用节点表达服务器时 出现错误。而且我不知道如何找到解决此问题的信息。 我应该如何关闭快递服务器? NodeJS配置说明: 实际应用代码: 另外,我发现[‘nodejs expressclose…’,]但是我不确定是否可以将其用于具有以下代码的代码中:。 问题答案: 返回。您应该在该

  • 我正试图以这种方式使用passport local设置登录页面,但它不起作用: 节点服务器端: 角度客户端: 下面是mongoDB的用户行: {"_id": ObjectId("53df7b3b769827786b32dafe"),"标识符":"123","motDePasse":"123","__v": 0} 我想它来自本地战略。我不知道console.log.结果 有什么好主意吗? 请问怎么了

  • 我需要你的帮助在这里创建一个虚拟主机在wampserver。在办公室里,我可以创建一个虚拟主机,但是当我试图在笔记本电脑上创建时,它不起作用。我仍然不知道出了什么问题。这是我做的。 > E:\Subversion\chelle。wpblog。本地的 我编辑主机文件 > 127.0.0.1chelle.wpblog.local 接下来是我在Apache中启用虚拟主机 > C:\wamp\bin\ap

  • 我已经在亚马逊 EC2 实例上安装了 Redis 服务器。Redis在服务器上工作正常 现在我想打开端口6379在安全组中“编辑入站规则”你能告诉我我应该使用的类型和协议吗?提前致谢

  • 问题内容: 背景 我正在尝试将条纹付款集成到我的网站中。我需要使用我的专用条纹密钥创建一个条纹用户。我将此密钥存储在服务器上,并调用服务器方法来创建用户。也许还有另一种方法可以做到这一点? 我的尝试和结果 我一直在使用相同的客户端代码和不同的服务器代码。所有尝试都会立即在客户端的console.log(…)上给出undefined,但在服务器的console.log(…)上给出正确的响应: 我也尝

  • 问题内容: 我在Jenkins工作,我在其中构建Web应用程序并通过命令启动它: 但是当我在Jenkins中进行此构建时,由于服务器仍在提示符下运行,因此无法 完成构建: 那么,如何在Jenkins中运行grunt服务器,以使服务器仍然运行但构建成功完成? 问题答案: 该命令通常通过节点打开本地服务器,您可以在该服务器上进行测试。如果您使用yeoman或其他,则希望Jenkins运行该命令。 问题