在将大型应用程序(大约300-400个组件和许多提供程序@ngxs和@ngrx)从angular + angular / material从v6升级到v7之后,无需更改其余代码,我注意到很多内存开销。
在升级前后比较来自应用程序的两个内存转储,如下所示:
Memory dump of @angular v7 app
Memory dump of @angular v6 app
这些堆快照是在两个页面都登录后拍摄的,导航到一个页面,其中包含许多内容,并且在两个实例中都进行了刷新。初始加载完成后,我拍摄了快照。
比较这两个堆大小,v6和v7之间的差异始终是内存中(字符串)常量的差异。
有人有没有注意到相同的行为?有谁知道如何解决这个问题?
我的package.json看起来像这样:
{
"name": "cwa",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.conf.json",
"build": "ng build",
"test": "ng test",
"lint": "./node_modules/.bin/nx lint && ng lint",
"e2e": "ng e2e",
"affected:apps": "./node_modules/.bin/nx affected:apps",
"affected:build": "./node_modules/.bin/nx affected:build",
"affected:e2e": "./node_modules/.bin/nx affected:e2e",
"affected:test": "./node_modules/.bin/nx affected:test",
"affected:lint": "./node_modules/.bin/nx affected:lint",
"affected:dep-graph": "./node_modules/.bin/nx affected:dep-graph",
"format": "./node_modules/.bin/nx format:write",
"format:write": "./node_modules/.bin/nx format:write",
"format:check": "./node_modules/.bin/nx format:check",
"update": "ng update @nrwl/schematics",
"update:check": "ng update",
"workspace-schematic": "./node_modules/.bin/nx workspace-schematic",
"dep-graph": "./node_modules/.bin/nx dep-graph",
"help": "./node_modules/.bin/nx help",
"affected": "./node_modules/.bin/nx affected"
},
"private": true,
"dependencies": {
"@angular/animations": "^7.1.3",
"@angular/cdk": "7.1.1",
"@angular/common": "7.1.3",
"@angular/compiler": "7.1.3",
"@angular/core": "7.1.3",
"@angular/flex-layout": "^7.0.0-beta.19",
"@angular/forms": "7.1.3",
"@angular/material": "7.1.1",
"@angular/material-moment-adapter": "7.1.1",
"@angular/platform-browser": "7.1.3",
"@angular/platform-browser-dynamic": "7.1.3",
"@angular/router": "7.1.3",
"@ctrl/tinycolor": "^2.2.1",
"@fortawesome/fontawesome-free": "^5.2.0",
"@ngrx/effects": "7.0.0-beta.1",
"@ngrx/store": "7.0.0-beta.1",
"@ngrx/router-store": "7.0.0-beta.1",
"@ngrx/store-devtools": "7.0.0-beta.1",
"@ngx-translate/core": "^10.0.2",
"@ngxs/devtools-plugin": "^3.3.2",
"@ngxs/router-plugin": "^3.3.2",
"@ngxs/storage-plugin": "^3.3.2",
"@ngxs/store": "^3.3.2",
"@nrwl/nx": "7.1.1",
"angular-highcharts": "7.0.2",
"core-js": "^2.5.4",
"d3": "^3.5.17",
"file-saver": "^1.3.8",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"highcharts": "^6.2.0",
"immer": "^1.5.0",
"moment": "^2.22.2",
"ng2-charts": "^1.6.0",
"ngrx-store-freeze": "0.2.4",
"ngx-cookie-service": "^1.0.10",
"outdated-browser-rework": "^2.6.1",
"perfect-scrollbar": "^1.4.0",
"rxjs": "6.3.3",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.11.0",
"@angular-devkit/build-ng-packagr": "~0.11.0",
"@angular/cli": "7.1.2",
"@angular/compiler-cli": "7.1.3",
"@angular/language-service": "7.1.3",
"@nrwl/schematics": "7.1.1",
"@types/d3": "3.5.34",
"@types/highcharts": "^5.0.34",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.5.0",
"jasmine-core": "~2.99.1",
"jasmine-marbles": "0.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-firefox-launcher": "^1.1.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"ng-packagr": "^4.2.0",
"prettier": "1.15.2",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tsickle": ">=0.34.0",
"tslib": "^1.9.0",
"tslint": "~5.11.0",
"typescript": "~3.1.6"
}
}
答案 0 :(得分:0)
我有同样的问题。我设法将其隔离到rxjs版本6.3.3
。我将其降级为6.3.2
,并且工作正常。我认为这可能与他们的github repostiory报告的this issue有关。