有没有办法在 javascript 中检测 Chrome/Chromium/V8 分析器是不是正在运行?

Posted

技术标签:

【中文标题】有没有办法在 javascript 中检测 Chrome/Chromium/V8 分析器是不是正在运行?【英文标题】:Is there a way to detect in javascript if the Chrome/Chromium/V8 profiler is running?有没有办法在 javascript 中检测 Chrome/Chromium/V8 分析器是否正在运行? 【发布时间】:2019-03-28 15:26:17 【问题描述】:

我的应用程序有几个昂贵的调试/开发功能,我想在分析器运行时禁用这些功能。

我可以运行应用程序的 prod 构建,但我会丢失有用的函数名称。

我希望有某种机制,例如检查 NODE_ENV 是否为“生产”。

【问题讨论】:

【参考方案1】:

V8 开发人员在这里。我不相信有可能检测探查器是否正在运行。我认为这可能是一种很好的情况——如果应用程序在您分析它们时改变了它们的行为,它可能会非常混乱。即使在你故意这样做的情况下(所以你不会感到惊讶),我想它很容易导致奇怪的工件。

我认为不同的构建模式可能是最好的解决方案。您可以拥有“开发”构建(完整的符号和调试功能)、“分析”模式(仅符号)和“生产”构建(无符号,无调试功能)。

【讨论】:

感谢您的回答和建议。另一个合理但很老套的解决方案是使用窗口范围的变量来标记敏感区域并在控制台中执行类似window.PROFILING=true 的操作。

以上是关于有没有办法在 javascript 中检测 Chrome/Chromium/V8 分析器是不是正在运行?的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中检测 Apple Silicon mac

有没有办法检测浏览器窗口当前是否处于活动状态?

检测 JavaScript 代码中的拼写错误

JavaScript:检测AJAX请求

为一个 Javascript 功能创建功能检测 (intersectionObserver)

在javascript或jQuery中检测iframe的负载(不是同一个域,动态添加)?