Sud*_*ha 78 javascript performance
使用调试功能会console.log
降低JavaScript的执行性能吗?它会影响生产环境中脚本执行的速度吗?
是否有一种方法可以从单个配置位置禁用生产环境中的控制台日志?
tom*_*kwi 65
实际上,console.log
比空函数慢很多.在我的Chrome 38上运行此jsPerf测试可获得惊人的效果:
console.log
是慢大约10万次比调用空函数,如果您有一次合理的console.…
呼叫次数,那么您将注意到性能滞后(在我安装Chrome时需要2 ms才能启动 - 或者在控制台打开时需要20 ms).但是如果你反复将东西记录到控制台 - 例如,将它连接起来requestAnimationFrame
- 它会让事情变得很糟糕.
在这个测试中,我还检查了生产的自定义"隐藏日志"的想法 - 有一个保存日志消息的变量,可按需提供.结果证明是这样的
console.log
,Ram*_*esh 51
如果您要在公共站点或其他地方使用此功能,任何对使用开发人员工具知之甚少的人都可以读取您的调试消息.根据您记录的内容,这可能不是理想的行为.
最好的方法之一是将console.log
一个方法包装在其中,并在哪里检查条件并执行它.在生产版本中,您可以避免使用这些功能.这个Stack Overflow问题详细讲述了如何使用Closure编译器来做同样的事情.
那么,回答你的问题:
hol*_*gon 14
使用调试功能 console.log 会降低 JavaScript 执行性能吗?会不会影响生产环境中脚本的执行速度?
当然,console.log()
会降低程序的性能,因为它需要计算时间。
是否有一种方法可以从单个配置位置禁用生产环境中的控制台日志?
将此代码放在脚本的开头以将标准 console.log 函数覆盖为空函数。
console.log = function () { };
Run Code Online (Sandbox Code Playgroud)
sq2*_*sq2 10
如果在通用核心脚本中创建控制台的快捷方式,例如:
var con = console;
Run Code Online (Sandbox Code Playgroud)
然后在整个代码中使用con.log("message")或con.error("错误消息"),在生产中,您只需将核心位置中的con重新连接到:
var con = {
log: function() {},
error: function() {},
debug: function() {}
}
Run Code Online (Sandbox Code Playgroud)
const DEBUG = true / false
DEBUG && console.log('string')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33433 次 |
最近记录: |