【问题标题】:Angular 7 - Memory footprint / leaks?Angular 7 - 内存占用/泄漏?
【发布时间】:2021-09-19 04:37:37
【问题描述】:

在没有更改其余代码的情况下,将一个相当大的应用程序(大约 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"
  }
}

【问题讨论】:

    标签: angular memory-leaks angular7 heap-memory


    【解决方案1】:

    我也有同样的问题。我设法将它隔离到 rxjs 版本6.3.3。我将其降级为6.3.2,似乎工作正常。我认为这可能与他们 github 存储库上报告的 this issue 有关。

    【讨论】:

    • 这真是太疯狂了,我的电脑将使用 6GB 内存,2GB 交换空间,然后在不知不觉中崩溃。
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 2021-09-10
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多