Javascript 使用require(';babel/register';)与运行前传输代码

Javascript 使用require(';babel/register';)与运行前传输代码,javascript,node.js,babeljs,Javascript,Node.js,Babeljs,与前者相比,后者是否有任何性能优势?当我自己对它进行测试时,我的一个项目加载已经传输的数据所花费的时间比使用babel/register时要短得多。不过,除了启动时间之外,我还不完全确定我会写些什么来公平地衡量这两者。有人知道巴贝尔增加的开销是来自运行中的巴贝尔/注册传输代码,还是不管你做什么都很慢?你是正确的,因为它会影响启动时间(这将大大影响,取决于你的项目有多大)。至于实际运行时,除非节点本身存在错误(遗憾的是,这不太可能被修复,因为它已被弃用)。我的假设是“只是从babel/在运行时注册

与前者相比,后者是否有任何性能优势?当我自己对它进行测试时,我的一个项目加载已经传输的数据所花费的时间比使用babel/register时要短得多。不过,除了启动时间之外,我还不完全确定我会写些什么来公平地衡量这两者。有人知道巴贝尔增加的开销是来自运行中的巴贝尔/注册传输代码,还是不管你做什么都很慢?

你是正确的,因为它会影响启动时间(这将大大影响,取决于你的项目有多大)。至于实际运行时,除非节点本身存在错误(遗憾的是,这不太可能被修复,因为它已被弃用)。

我的假设是“只是从babel/在运行时注册传输代码”来测试,运行相同的代码两次。第二次到应该更快,因为它只需要在第一次require()上传输它。你是说需要babel/寄存器两次吗?据我所知,在主文件中只需要一次就可以传输所有需要的脚本。每次运行时,传输仅发生一次。如果您在测试中忽略了这一点,只需测试模块返回的逻辑速度,就可以测试是否存在性能差异。如果只看总时间(包括require()期间的传输时间),预传输将始终获胜,因为它在所有运行之前运行一次,而不是在每次运行之前运行一次。换句话说,构建一个返回方法集合的示例模块,然后在两种情况下测试所述方法的速度。我猜,我想说的是,这里要测试两件事:每个transfile方法的输出,以及预先传输与内联传输的好处。在生产中,前端总是更快,因为您可以在dev中传输它,而不必在生产中处理它,而在开发过程中,as-inline可能会更快,因为它在构建过程中少了一步。