gpt4 book ai didi

javascript - console.log/warn/error - native 、普通 JavaScript 性能更高的替代方案?

转载 作者:行者123 更新时间:2023-11-30 11:08:55 25 4
gpt4 key购买 nike

我做了一些研究,我发现的大部分都是几年前的事了。我是 JS 的新手,我正在逐渐积累我的知识。

Console.log() 是一个非常有用的工具,但我非常担心它普遍表现不佳(https://jsperf.com/console-log1337/16https://jsperf.com/console-log1337/33 作为基本示例),以及坏名声。

如果我需要在生产应用程序/网站中保留 console.log() 样式的错误消息,是否有原生 vanilla JS(无框架/库)的性能更高的替代方案?

我最初的想法是将所有日志项放入一个数组中,稍后可以收集(如果需要)但是它似乎不能很好地与 Promise.all() 结合使用 - 而不是说 10数组中的项目,我取而代之的是取回具有最后一个值的单个数组,或者取回 10 个单独的数组。

是否有本地或最推荐的替代方案(感谢这是对“意见”的开放 - 我不确定如何表达它!)?

Ps - 抱歉缺少格式......移动!

最佳答案

... poor performance

其中一个测试用例将调用空函数与调用 console.log 进行比较。 JIT 编译器可能会内联一个空函数,因此您实际上是在比较根本没有代码console.log。可以肯定的是,根本没有代码会更快。

我从未经历过因日志记录而导致的任何(明显的)延迟,除非您在渲染循环或任何执行得非常非常频繁的情况下进行日志记录。

... bad reputation

是认真的吗?在我看来,与其他语言相比,JS 有很好的调试方法(可能是因为 JS 有最好的错误 :))因为你可以“实时”查看嵌套结构,你可以在断点处停止执行,你可以准备代码以使用 debugger; 语句,您可以转储整个内存、可视化 GC 行为、热函数等等。是的,所有这些功能都会降低性能,但控制台的性能相当不错。

is there a more performant alternative that is native to vanilla JS (no frameworks/libraries)?

logging是直接写入执行JavaScript的引擎中,这意味着它可以访问很多你不能通过JS访问的东西,而且原生代码总是比编译后的JavaScript更快(或者同样快,但没有人能保证那个)。

In the event I need to leave console.log() style error messages in a production application/website ...

谁应该阅读这些日志?如果出现错误,您是否希望您的客户查看控制台?

Production 中的日志记录不应记录您通过调试使用的所有内容,但足以让您可以跟踪错误,因此可以通过一些面包屑查​​找错误发生的位置(例如“菜单打开”)以及错误本身。

如果您不想自己编写生产日志记录,请查看 sentry for JS

关于javascript - console.log/warn/error - native 、普通 JavaScript 性能更高的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com