Nodejs 命令行选项

Tags
nodejs
Created
Apr 9, 2018 7:08 AM

`node -r` 这种用法,这样不用改源码就能加入其他模块

  • p 打印执行的代码结果

http://nodejs.cn/api/cli.html

  • -print-bytecode
  • -print-bytecode-filter
  • -print-code // 打印出TurboFan**生成的汇编代码
  • -print-opt-code
  • [generated bytecode for function: add (0x29e627015191 <SharedFunctionInfo add>)]: 这行告诉我们,接下来的字节码是为 add 函数生成的。0x29e627015191 是这个函数在内存中的地址。
  • Bytecode length: 6: 整个字节码的长度是 6 字节。
  • Parameter count 3: 该函数有 3 个参数。包括传入的 a,b 以及 this。
  • Register count 0: 该函数没有使用任何寄存器。
  • Frame size 0: 该函数的帧大小是 0。帧大小是指在调用栈上分配给这个函数的空间大小,用于存储局部变量、函数参数等。
  • OSR urgency: 0: On-Stack Replacement(OSR)优化的紧急程度是 0。OSR 是一种在运行时将解释执行的函数替换为编译执行的函数的技术,用于提高性能。
  • Bytecode age: 0: 字节码的年龄是 0。字节码的年龄是指它被执行的次数,年龄越高,说明这个字节码被执行的越频繁,可能会被 V8 引擎优化。
  • Ldar a1 表示将寄存器中的值加载到累加器中 ,这行是字节码的第一条指令
  • Add a0, [0] 从 a0 寄存器加载值并且将其与累加器中的值相加,然后将结果再次放入累加器 。
  • Return 结束当前函数的执行,并把控制权传给调用方,将累加器中的值作为返回值
  • S> 表示这是一个“Safepoint”指令,V8 引擎可以在执行这条指令时进行垃圾回收等操作。
  • E> 表示这是一个“Effect”指令,可能会改变程序的状态。
  • Constant pool (size = 0): 常量池的大小是 0。常量池是用来存储函数中使用的常量值的。
  • Handler Table (size = 0): 异常处理表的大小是 0。异常处理表是用来处理函数中可能出现的异常的。
  • Source Position Table (size = 8): 源代码位置表的大小是 8。源代码位置表是用来将字节码指令与源代码行号关联起来的,方便调试。
  • 0x29e627015bc1 \<ByteArray[8]>: 这行是源代码位置表的具体内容,显示了每个字节码指令对应的源代码行号和列号。
SuperMade with Super