小农
小农
  • 发布:2022-06-24 15:52
  • 更新:2022-11-02 16:25
  • 阅读:678

jse进程的内存一直在小幅度的上涨,最终导致APP崩溃,要怎么解决呀?

分类:uni-app

非常简单的代码,即使静态页面放在那里,adb shell查看内存使用情况,发现jse进程的内存一直在小幅的上涨,APP运行十几个小时候后,直接被系统kill了

2022-06-24 15:52 负责人:DCloud_Android_DQQ 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

什么叫jse 进程。 你贴一张截图看看

  • 小农 (作者)

    已经贴出来了,截图里面两个进程的内存都是在上涨的

    2022-06-24 17:17

小农

小农 (作者)

这是adb shell里面,ps 命令看到的内存占用情况

DCloud_Android_DQQ

DCloud_Android_DQQ

你是不是用了什么原生插件。
我们的sdk没有创建jse 相关的进程。

  • 小农 (作者)

    默认基座也有这个进程,见下图

    2022-06-24 19:05

  • 小农 (作者)

    我用最原始的模板代码稍作修改,测试运行了一晚上,主进程和jse进程内存都在持续慢慢上涨,这个过程会持续到进程被系统kill,麻烦看下

    2022-06-25 10:34

小农

小农 (作者)

默认基座也有这个进程的

DCloud_Android_DQQ

DCloud_Android_DQQ

我这边没法看到这个进程。是需要什么特殊操作吗

  • 小农 (作者)

    不需要的,我用的是小米盒子测试,安卓7.0系统

    2022-06-24 19:57

小农

小农 (作者)

半小时前后,内存占用从15.9MB涨到了18MB,只是简单的用uniapp空模板创建的项目,简单修改了下页面代码如下:

<template>  
    <view class="content">  
        <view class="text-area">  
            <text class="title">{{title}}{{i}}</text>  
        </view>  
        <image class="logo" v-show="i % 2 == 0" src="/static/logo.png"></image>  

    </view>  
</template>  

<script>  
    export default {  
        data() {  
            return {  
                title: 'Hello',  
                i: 0  
            }  
        },  
        onLoad() {  
            let _this = this;  
            setInterval(function() {  
                _this.change();  
            }, 1000);  
        },  
        methods: {  
            change() {  
                this.i++;  
            }  
        }  
    }  
</script>
小农

小农 (作者)

我会开着一直观察,到时候持续更新

小农

小农 (作者)

现在内存占用涨到了19M多

小农

小农 (作者)

运行了一晚上,内存占用涨到了34MB

小农

小农 (作者)

主进程慢慢的从昨晚的185涨到了215;jse进程从昨晚的15M涨到了37MB;

小农

小农 (作者)

主进程内存占用有回落,jse进程内存占用现在到了42MB,一直在小幅上升

小农

小农 (作者)

可以答复一下么?

  • DCloud_Android_DQQ

    除了盒子,在其他设备会出现类似问题嘛

    2022-09-13 15:38

  • 小农 (作者)

    回复 DCloud_Android_DQQ: 等了两个半月才回复。。。目前测试安卓6、安卓7都会这样,不用任何复杂操作,就如实例代码,大概运行一两天就会挂掉

    2022-09-18 22:55

unicorn_up

unicorn_up

遇到同样的问题, 离线打包应用的运行内存中, 应用包名:jse 的进程内存占用会一直持续增加不会释放, 直到系统内存耗尽app进程被系统kill.

  • DCloud_Android_DQQ

    你也是小米盒子嘛

    2022-09-13 15:30

  • unicorn_up

    回复 DCloud_Android_DQQ: rk3568, Android11. 调试后发现问题可能出在5+的IO文件操作上, jse进程会不断增长, 虽然缓慢但是不会释放, 像我遇到的长时间运行使用的场景下, 几天后就必定会引起OOM. 正在把底层文件操作改为android原生, 花在内存优化上的时间大大超出了预期.

    2022-09-15 14:04

  • 小农 (作者)

    回复 unicorn_up: 我这边测试的时候是啥业务逻辑都没加入,就一个定时器切换div显示隐藏,内存一直小幅上涨

    2022-09-20 14:52

  • DCloud_IOS_XTY

    回复 小农: 这个问题排查了下jse进程中的代码没有泄露,js heap也是正常的,我试了下interval运行一段时间后停掉在等待一段时间内存占用会下降到正常水平,这个问题初步断定和v8的内存管理和gc回收机制有关

    2022-11-12 18:33

dafeizhu

dafeizhu

同样的问题,请问有没有解决方案?

要回复问题请先登录注册