大量模块是否会影响AngularJS的性能?

时间:2014-01-08 12:24:57

标签: performance angularjs

有人可以提供一些指示吗?

说,我有许多服务模块,工厂模块等。我正在尝试构建一个角度大的应用程序,它有大量的html元素排列在不同的控制器下。

现在,如果我继续将这些服务/工厂模块作为依赖项包含在我的控制器中(我将它们添加为依赖项,因为我可能随时需要它们);这可能会影响我的应用程序的性能?是否应该只包含使用过的模块以避免某种开销?

周围的冲浪对于建立清晰的洞察力并没有多大帮助。

1 个答案:

答案 0 :(得分:10)

我在angular docs中找到了以下语句:

  

http://docs.angularjs.org/guide/module

     

<强>依赖关系   模块可以列出其他模块作为其依赖项。根据模块的不同,需要在加载需求模块之前加载所需的模块。换句话说,所需模块的配置块在需求模块的配置块之前执行。运行块也是如此。即使多个其他模块需要,每个模块也只能加载一次。

     

异步加载   模块是管理$ injector配置的一种方式,与将脚本加载到VM无关。现有的项目处理脚本加载,可以与Angular一起使用。由于模块在加载时不执行任何操作,因此可以按任何顺序将其加载到VM中,因此脚本加载器可以利用此属性并并行化加载过程。

所以我认为,如果你包含数千个模块,唯一的限制是保留浏览器的内存以将它们加载到脚本环境中。我希望这是唯一的限制因为我没有花时间去研究js引擎他们实际上是如何做这个脚本加载的。

我创建了性能比较的初稿。这些测试用例包括app模块中的无,100,1000和2000模块。至于现在,我看不出任何显着的性能差异! jsperf