Angular 7-内存占用/泄漏?

时间:2018-12-19 09:58:39

标签: angular memory-leaks heap angular7

在将大型应用程序(大约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"
  }
}

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我设法将其隔离到rxjs版本6.3.3。我将其降级为6.3.2,并且工作正常。我认为这可能与他们的github repostiory报告的this issue有关。