【问题标题】:Electron app getting throttled by OSX电子应用程序被 OSX 限制
【发布时间】:2016-10-27 19:38:48
【问题描述】:

运行电子 1.4.3,我遇到了一个奇怪的问题,看起来事件循环不知何故卡住了。我设置了每 80 毫秒更新一次的间隔,但大约 30 秒后,它突然每 10 秒更新一次。以下是我以每秒一次的间隔测试它时的一些日志记录:

2016-10-26T21:30:38.017Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:39.086Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:40.316Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:41.485Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:42.750Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:43.845Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:45.053Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:46.186Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:47.257Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:48.332Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:49.452Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:50.798Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:51.951Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:53.094Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:54.206Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:55.275Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:56.343Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:57.416Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:58.583Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:30:59.704Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:00.772Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:01.841Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:02.977Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:04.048Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:05.118Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:06.289Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:07.381Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:08.506Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:09.583Z [INFO   ]-(CommandUtils             ) Polling
2016-10-26T21:31:19.964Z [INFO   ]-(CommandUtils             ) Polling

从最后几行可以看出,间隔突然从每秒变为每十秒一次。在我的测试中,我发现它非常一致地在大约 30 秒后每 10 秒更新一次。

但是,此问题似乎与系统有关。我们已经在 Linux 机器上对此进行了测试,但无法重现该问题。我们在其他几台 Apple 笔记本电脑上对其进行了测试,它们就像我的 Apple 笔记本电脑一样,表现出这种奇怪的行为。此外,问题似乎取决于它的运行位置而不是构建位置 - 在 OSX for Linux 中构建然后在 Linux 中运行没有任何问题,但在 Linux 中为 OSX 构建然后在 OSX 中运行确实有问题。

我也尝试将 electron 降级到 1.3.3,但这也没有解决问题。

更新:

我绝对怀疑某些 OSX 恶作剧。我以前没有使用浏览器窗口,但在尝试附加调试器时,我最终打开了附加到应用程序的浏览器窗口。一旦我这样做,节流就没有发生。但是,如果我将该浏览器窗口放在其他东西后面(这样它就不会被渲染),限制会在大约 30 秒后发生。

那么如何防止 OSX 限制我的(当前无 UI)电子应用程序?

【问题讨论】:

    标签: macos electron


    【解决方案1】:

    正如Avoid app throttling when Electron is in background 中提到的,解决方案很简单。我只需要添加

    electron.powerSaveBlocker.start('prevent-app-suspension');
    

    OSX 不会在 30 秒后限制我的应用程序。

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多