You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web内存泄漏性能问题求助:缓存激增致应用卡顿

Flutter Web 离线应用内存激增卡顿问题求助

我们使用Flutter Web开发了一款支持用户收集数据的离线应用,近期遭遇性能瓶颈:长期使用后应用会逐渐卡顿,直至无法正常操作,重新加载页面能临时恢复,但这并非有效解决方案。

已完成以下排查操作:

  • 排查是否由特定模块引发性能问题,但无论使用哪个功能模块,应用都会出现变慢的情况;
  • 检查所有资源是否在dispose方法中正常释放,未发现明显遗漏;
  • 尝试用Flutter DevTools调试Flutter Web失败,Chrome浏览器缓存可读性极差,难以进行深入分析。

排查过程中发现核心问题:应用缓存增长极快——使用15分钟后缓存增幅达到161%。但将项目打包为APK后,同样使用15分钟内存仅增长19%(Release包大小30MB,该增幅属于正常范围),未检测到内存泄漏现象。

我们虽考虑过切换至Android/iOS原生应用,但更希望能定位并解决Flutter Web端内存快速分配却无法释放的问题,恳请提供技术支持。

项目相关细节

  • Web内存使用情况截图:Web内存截图
  • APK内存使用情况截图:APK内存截图

index.html

<html>
<head>
  <script src="flutter.js" defer></script>
  <script src="pdfjs/pdf.js" type="text/javascript" defer></script>
  <script src="pdfjs/pdf.worker.min.js" type="text/javascript" defer></script>
  <script src="indexResources/index.js" type="text/javascript" defer></script>
  <script src="main.dart.js" type="application/javascript" defer></script>
  <base href="$FLUTTER_BASE_HREF">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="A new Flutter project.">
  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="project">


  <!-- Favicon -->
  <link rel="icon" type="image/png" href="favicon.png">
  <link rel="apple-touch-icon" href="icons/project-Icon-192.png">
  <link rel="stylesheet" type="text/css" href="indexResources/index.css">
  <link rel="manifest" href="manifest.json">

  <title>project</title>
</head>
<body>
  <picture id="splash">
      <source srcset="splash/img/light-1x.png 1x, splash/img/light-2x.png 2x, splash/img/light-3x.png 3x, splash/img/light-4x.png 4x" media="(prefers-color-scheme: light)">
      <source srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x" media="(prefers-color-scheme: dark)">
      <img class="center" aria-hidden="true" src="splash/img/light-1x.png" alt="">
  </picture>
</body>
</html>

pubspec.yaml

name: project
description: A new Flutter project.

# Prevent accidental publishing to pub.dev.
publish_to: 'none'

version: 1.0.9-SNAPSHOT

environment:
  sdk: '>=3.1.0 <4.0.0'


dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.19.0
  http: ^1.1.0
  provider: ^6.0.5
  shared_preferences: ^2.2.1
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  flutter_slidable: ^3.0.0
  cached_network_image: ^3.2.3
  flutter_secure_storage: ^9.2.1
  connectivity_plus: ^6.0.3
  salomon_bottom_bar: ^3.3.2
  validators: ^3.0.0
  flutter_native_splash: ^2.3.2
  url_launcher: ^6.2.6
  cupertino_icons: ^1.0.6
  flutter_svg: ^2.0.5
  csv: ^6.0.0
  flutter_markdown: ^0.7.1
  freezed_annotation: ^2.1.0
  json_annotation: ^4.8.1
  flutter_animate: ^4.2.0+1
  logging: ^1.2.0
  animations: ^2.0.8
  package_info_plus: ^8.0.0
  flutter_colorpicker: ^1.1.0
  device_info_plus: ^10.0.1
  path_provider: ^2.1.5

dev_dependencies:
  mockito: ^5.3.2
  flutter_test:
    sdk: flutter
  integration_test:
    sdk: flutter

  flutter_lints: ^4.0.0
  build_runner: ^2.4.10
  hive_generator: ^2.0.1
  freezed: 2.5.2
  json_serializable: ^6.7.1

flutter:
  uses-material-design: true

  # Enable generation of localized Strings from arb files.
  generate: true

  assets:
    # Add assets from the images directory to the application.
    - assets/images/
    - assets/pdf/
    - assets/images/_common/
    - assets/mock/
    - assets/fonts/
    - assets/info.md
    - assets/mock/data.json

  fonts:
    - family: Roboto
      fonts:
        - asset: assets/fonts/Roboto-Regular.ttf

内容的提问来源于stack exchange,提问作者DesperateFlutterDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:01:11