【问题标题】:JSON Spawning mysql sleep processesJSON 生成 mysql 睡眠进程
【发布时间】:2010-02-16 23:36:12
【问题描述】:

我正在制作一个 Javascript(前端,PHP 后端)游戏。在这个游戏中,它每 2 秒检查一次服务器是否有更新。有一个 1 sql 调用正在运行,最后我使用 $mysqli->close() 关闭 SQL 连接。 where 中的列都被索引。

我遇到的问题是在它运行了一段时间之后 MYSQL 开始产生大量的睡眠进程。有谁知道这可能是什么原因造成的?

【问题讨论】:

  • 我不知道这是否完全相同,但我无法在整个游戏过程中为某人提供可靠的 php 进程。 Comet 似乎不打算与 PHP 一起使用。从我读到的内容来看,我必须在一场比赛的整个时间内为人们开放一个流程。这只是浪费,我无法通过使服务器更慢来解决问题。我遇到的问题是 mysql 问题而不是 javascript 问题,不能保证这也不会产生睡眠。更不用说大量的 php 处理了。
  • 每 2 秒轮询一次并不比仅仅保持进程运行更有效率
  • @Iscariot - 但您每 2 秒轮询一次。将其乘以玩游戏的用户数量……效率也不高。
  • 这对我来说不是。也许我错了,你比我更清楚,但如果我每 2 秒运行一个需要 12-20 毫秒的进程,我每 2 秒运行一次,持续 5 分钟。 3000 毫秒(20 毫秒)或 300,000 毫秒使其保持运行。我认为留下它会有害,这是不对的吗?我并不完美,这就是我寻求帮助的原因,所以如果我错了,请告诉我我的方式的错误。

标签: php javascript json game-development


【解决方案1】:

我会将更新推送给您的用户,而不是轮询他们。查看AJAX Push Engine,这对您有很大帮助。另外,打开持久的 MySQL 连接,这可能会有所帮助。

【讨论】:

    【解决方案2】:

    流程是否存在? Mysql 喜欢打开一些线程来接收请求,我不会担心它们,除非它让很多线程处于打开状态并占用资源。

    如果您每 2 秒点击一次请求,那么让池等待请求比每次都实例化连接更便宜。

    【讨论】:

    • 它从一两个开始,很快变成 20-40,页面加载从 223 毫秒到 10 秒。我不能忽视这个问题。
    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多