【问题标题】:Node Debug large Arrays节点调试大数组
【发布时间】:2013-10-09 07:35:17
【问题描述】:

在节点中,我正在尝试通过节点检查器进行调试。我启动了一个新服务器 (node-inspector &)。我以--debug-brk 开始节点。

我的数组中有大约 3k 个条目,每个条目是一个包含大约 10 个元素(总共 30k 个整数)的数组。

调试器(在 chrome 中打开)完全分块。当该表在本地或闭包内存中时,很难进行任何形式的调试。有什么加快速度的方法吗?这是节点的内存问题吗?

谢谢

【问题讨论】:

    标签: javascript node.js node-inspector


    【解决方案1】:

    编辑:发生这种情况是因为“范围变量”窗口 - node-inspector 在每个步骤中更新本地变量,这在您的示例中是它如此缓慢的原因。我建议对那部分代码使用控制台调试器(并尽量减少大数组范围)

    不要将整个数组添加到观察窗口或控制台 - 使用单个元素或 array.slice(1100, 1200) - 获取小窗口,在此示例中为 100 个元素

    需要在每个调试器步骤中通过线路传输大量数据才能完全镜像此数组

    【讨论】:

    • 只有一个问题。这并不是说我试图查看该信息,如果它包含在闭包或本地范围内,它会被自动拉入,从而导致大量滞后(并且 30k 整数非常小,大约 1 Mb(是的,我的意思是“b”)所以我不明白为什么这会是一个问题(除非它恰好是 1992 年)
    • 你能粘贴一个独立的例子吗?我会尝试调试调试器
    • 你说得对。由于“范围变量”窗口,节点检查器会镜像所有范围变量。我认为节点检查器不存在好的解决方案(除了修改源和禁用本地变量)。调试器有线协议中的“中断”事件仅发送帧数组(通常非常轻量级)我能够在控制台调试器中内置的 node.js 中很好地调试示例
    • 抱歉安德烈没有回复你,整天都在工作。如果你仍然想要一个例子,它的字面意思就是这个 ez。 arr = []; for (var i = 0; i < 50000; i++) { arr.push(i); } 会让人窒息
    • 是的,我做了完全相同的例子(但使用 1m 数组而不是 5k )
    猜你喜欢
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2021-06-18
    • 2019-05-06
    • 2014-10-28
    • 2017-10-03
    相关资源
    最近更新 更多