9***@qq.com
9***@qq.com
  • 发布:2023-05-29 17:21
  • 更新:2023-05-31 15:56
  • 阅读:341

【报Bug】uni-app 引入并使用第三方字体后导致内存泄露

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.6.5

HBuilderX类型: 正式

HBuilderX版本号: 3.8.3

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 小米10 Ultra(至尊纪念版)

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

由于附件上传有大小限制,所以我将代码上传到了 gitee 仓库里,地址为:https://gitee.com/guess_who_am_I/test.git

操作步骤:

请查看 demo 视频(demo 视频在项目根目录下)

预期结果:

页面关闭时内存及时回收,即使是使用了第三方字体。

实际结果:

使用第三方字体后,内存泄露。

bug描述:

如题,我在项目中使用了第三方字体后,页面关闭后内存无法被回收,导致内存溢出。随着打开页面的数量的增加,手机运行内存的占用会越来越高,甚至在一些设备上会导致应用闪退。
注:

  1. 附件中的项目为测试项目,只给出了很少的DOM结点和数据,所以无法导致在一些设备上引起闪退现象的发生,只能观察到运行内存占用越来越高。
  2. 在我们的真实项目中,打开一个详情页大概会占用20MB的内存,所以当打开60个页面左右时内存占用就飙升到1GB以上了,在测试同学的 OPPO Reno8 或 小米10 S 设备上时,此时就会出现 APP 闪退的现象了,在我的小米 10 Ultra 上则不会闪退。
2023-05-29 17:21 负责人:DCloud_Android_ST 分享
已邀请:
9***@qq.com

9***@qq.com (作者)

是我第三方字体的使用姿势不对吗?

9***@qq.com

9***@qq.com (作者)

没有人遇到过这个问题吗?

DCloud_Android_ST

DCloud_Android_ST

怎么判定的是字体泄露了。去掉字体就能得到解决?

  • 9***@qq.com (作者)

    经过进一步的摸索,我发现应该是使用的字体包体积大导致的,使用的两个鸿蒙字体字体包大小均为8M多,其余两款字体和字体图标大小最多只有几十KB,当我注释掉使用鸿蒙字体的css代码后(另外的字体和字体图标仍在使用),内存泄漏的问题就没有了。

    2023-05-31 16:32

  • 9***@qq.com (作者)

    有什么方法可以临时解决一下这个问题吗?

    2023-06-02 11:34

要回复问题请先登录注册