javascript - 如何以编程方式识别和终止无限循环中的 JavaScript?

标签 javascript infinite-loop

这更多的是一个假设性问题。有时 JavaScript 代码可能会进入无限循环并阻塞一切,特别是在开发的早期阶段。我知道最好的解决方案是编码,这样这种情况就不会出现,但是如果在某种情况下不可能编写完整的代码怎么办(可能是因为我们无法控制输入或其他东西)。

有没有什么方法可以让我们以编程方式确定代码何时处于无限循环并终止它?

也许在单独的线程或子进程中同步运行可能发生这种情况的代码片段,并确定该线程/进程何时处于无限循环中。

如何才能做到这一点呢?是否可以通过单独确定某个线程(主线程或子线程)的 CPU 使用率来确定该线程何时处于无限循环中?

根据下面评论中的讨论,我意识到仅凭跟踪类似语句的重复执行和高资源利用率来识别阻塞无限循环是不可能的。所以我认为解决方案在于两者的结合。但这又回到了我们之前的问题。我们如何通过脚本来测量CPU使用率?

最佳答案

对于简单的循环,您可以使用 here 使用的方法。它使用基于路径的方法来检测无限循环。语句被视为图的节点。

您还可以看到这个paper 。他们已经实现了java程序的运行时解决方案。

关于javascript - 如何以编程方式识别和终止无限循环中的 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797889/

相关文章:

javascript - 按时间间隔循环 javascript 函数

Python:最有效的循环直到条件

JavaScript while循环计算

c# - Unity C# 脚本 - 没有循环的无限循环......等等?

javascript - 主干无法启动?

javascript - jQuery 如何捕获 tbody 中的嵌套值?

javascript - 从商店的前端 Shopify javascript api

javascript - 数组中的映射在 ngOnChange 事件 Angular 5 中不起作用

java - while 循环停止检查 if 语句?

javascript - Facebook 点赞按钮空白页