在打开几个小时后反应应用程序在 chrome 中冻结
Posted
技术标签:
【中文标题】在打开几个小时后反应应用程序在 chrome 中冻结【英文标题】:React app freezing in chrome after several hours of being open 【发布时间】:2020-02-12 22:27:02 【问题描述】:不是特定的编程查询,而是更多与整个 javascript 应用程序有关的问题,该应用程序存在一般问题并正在寻找任何可能的解决方案来调试它。
我正在使用 React 并且有一个单页应用程序,它每秒大约 40 次从 websocket 接收流数据。用户显示屏每秒更新相似的次数以显示更新。
我遇到的问题是,在运行页面超过 12 小时后,不仅 google chrome,而且所有其他应用程序都开始暂时冻结。如果我开始尝试对其他应用程序做太多事情,有时 chrome 上的所有窗口都会变黑,并且可能会冻结长达 30 秒。其他应用程序使用的处理/内存越多,我打开的 react 应用程序版本越多,冻结开始的速度越快,但无论如何只能在几个小时后开始。
目前唯一的解决办法是重新启动整个窗口,因为即使在关闭 chrome 之后问题仍然存在。
我尝试使用 google chrome 分析来检查堆类型以查看内存泄漏,但内存大小与我首次启动应用程序时相同。 我试过重新安装chrome,但这也没有解决问题。 我在网上某处读到这样的冻结可能是由于垃圾收集过多造成的?但是,什么会导致这种情况过度发生呢?而且我不明白为什么在我关闭谷歌浏览器后这种情况会持续存在。
一个可能的解决方案是构建一个自动刷新器,一旦用户空闲至少 5 分钟,就会每小时刷新一次页面,但如果这是一个可以解决的问题,这似乎有点矫枉过正。
对于调试此类问题或明显的地方我应该寻找解决方案的任何提示/建议?因为它在当前状态下非常无法发货
【问题讨论】:
所以即使用户空闲,您仍然会发送流数据?似乎是在浪费数据和精力。为什么不在用户空闲时停止它并在用户再次处于活动状态时继续?可能会解决您的问题。 好建议。我应该说空闲意味着用户正在关注它,但如果不是在他们非常忙碌的时期,他们可能会偷偷刷新。 你不是一个人这一位。我以为我的机器已经全部规范了,但是在使用 npm 运行 React-Web 之后是的。我开始看到同样的问题。正如你提到的。 @putvande 你是什么意思,这是要在 React 或 chrome 中改变吗? 【参考方案1】:问题是由于 Windows 10 上的以下两件事之一。我执行了这两件事,其中一件导致冻结停止: 1)在控制面板->电源选项->附加电源设置->更改计划设置->更改高级设置->将硬盘休眠选项更改为从不或0 2) 从主板制造商网站更新芯片组驱动程序。
【讨论】:
大声笑我在 Mac 上遇到了完全相同的问题。但我说的是一个面向客户的网络应用程序——所以我不会告诉他们更新东西或更改他们机器上的配置。我想知道是否可以通过编程方式解决此问题以上是关于在打开几个小时后反应应用程序在 chrome 中冻结的主要内容,如果未能解决你的问题,请参考以下文章