公司开发的网站版 后台管理系统,采用webpack+angularJS的技术,现在遇到一个情况,就是仅打开登陆页,就占用了快300M内存,想请问下,各位大神,有遇到过这种情况吗?怎么解决的?
3 回答
千万里不及你
TA贡献1784条经验 获得超9个赞
300M的内存应该和资源加载的大小关系不大,使用wepback打包不minify一般最大也就几M左右,加上一些图片和第三方库,算上10M足够了。而且关于占用内存的现象你没有描述,是白屏?还是卡顿?还是仅仅是通过内存监控发现占用很高?
我觉得既然是使用ng1的话,内存占用过高尝试减少代码中的不必要的watcher
以提高性能,大体从这么几方面入手
减少双向绑定(ng1.2以下请无视)
=
的使用,多使用单向绑定<
减少$compile指令的使用
减少$apply指令的使用(如果有多次重复的$apply尝试合并为一次)
尽量不要在ngCheck里面做一些密集型运算
其他方面再看看css上面有没有因为过多的特效引起的重绘、重排,大体就这些了。
如有错误,还望指正。
优化点不一定要先从第三方jq控件开始,可以先从视图层的逻辑指令和模板表达式的使用方式开始,ng中每一个内置指令都会自动绑定一个$watcher的,使用方式决定性能,我举个例子,比如:
是否在ng-repeat中使用了ng-if,而且是否有必要
component和directive中是否需要onDestroy逻辑
尝试使用
::
操作符来优化一些不需要双向绑定的渲染逻辑,比如导航栏或者表格表头,这些数据一般都会只渲染一次,所以其实完全没必要使用双向绑定
之后再从第三方jq空间开始,比如:
第三方控件是否过多使用了$compile和注册了冗余的$watcher
在指令销毁生命周期是否对第三方控件进行了清理工作
添加回答
举报
0/150
提交
取消