了解ember-cli / loader.js require._stats属性

时间:2017-02-14 21:08:35

标签: javascript performance ember.js ember-cli

我已尝试搜索各种谷歌搜索,以及是否是臃肿的词需要或不友好./_我无法找到有关此信息。

我正在深入研究require._stats,尝试根据定义,使用等模块来理解我的应用程序的性能,require._stats下的属性看起来像是发现这些信息的有用工具。

我大致了解以下几点的含义,但我对在开发控制台中键入require._stats后弹出的以下字段的可靠定义感到好奇(链接到任何外部资源也很受欢迎) ):

  1. define
  2. 出口
  3. findDeps
  4. findModule
  5. modules
  6. pendingQueueLength
  7. 具体化
  8. 要求
  9. 解决
  10. resolveRelative

1 个答案:

答案 0 :(得分:1)

我正在分析的Ember.js应用程序是从ember-cli的loader.js获取这些统计信息,而不是require.js的一部分。查看loader.js中的代码,我们可以看到每个字段通过跟踪heimdall.increment语句并查看a few definitions provided early in the source来提供以下信息:

  1. define - 定义的模块数。使用此加载程序,将有额外的模块定义为a few dummy modules are loaded in the source。对于使用相同名称定义的模块,不可能计算在内。
  2. exports - 导出的模块数
  3. findDeps - 搜索依赖项的次数。这应该对应
  4. findModule - 查找模块的次数。这可能是在需要模块时,或者在未注册unsee
  5. modules - 已注册的模块数
  6. pendingQueueLength - 找到模块并将其添加到待处理队列以进行尚未处理且未执行的处理的次数
  7. reify - 运行模块导出的次数
  8. require - 模块的require语句数
  9. resolve - 解析模块的次数
  10. resolveRelative - 在相对路径上解析模块的次数(以.开头的那些)
  11. 重要的是要注意,完全可以将依赖项包装在模块中(有时无意中使用#34;魔法"构建自动化工具!)因此您可能无法获得完整的图片您的依赖关系管理的性能,因为您可能在通过loader.js加载的模块中有某种加载器的实例,提供您正在查看的requirejs._stats