小农
小农
  • 发布:2022-06-25 14:03
  • 更新:2022-06-26 12:18
  • 阅读:701

【报Bug】uniapp内存泄露

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

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

HBuilderX类型: 正式

HBuilderX版本号: 3.4.15

手机系统: Android

手机系统版本号: Android 7.0

手机厂商: 小米

手机机型: 小米盒子

页面类型: vue

vue版本: vue3

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<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>  

<style>  
    .content {  
        display: flex;  
        flex-direction: column;  
        align-items: center;  
        justify-content: center;  
    }  

    .logo {  
        height: 200rpx;  
        width: 200rpx;  
        margin-top: 200rpx;  
        margin-left: auto;  
        margin-right: auto;  
        margin-bottom: 50rpx;  
    }  

    .text-area {  
        display: flex;  
        justify-content: center;  
    }  

    .title {  
        font-size: 36rpx;  
        color: #8f8f94;  
    }  
</style>

操作步骤:

真机运行测试代码,adb shell持续用 ps 命令观察内存占用即可

预期结果:

没有内存泄露

实际结果:

有内存泄露

bug描述:

一段非常简单的测试代码,从6月24晚上21:30 运行到 6月25日13:40

主进程内存占用,从185MB最高涨到210MB,但是后来有回落到190MB左右,目前还没能得出最终结论;
jse进程内存占用,从18MB涨到了42MB,起见没有明显回落,一直在小幅上涨;

可以看到的是jse进程有内存泄露;

如果是复杂的业务代码,泄露速度会快很多

测试代码已经加入附件,代码是使用默认空模板创建,仅仅修改了几行代码

2022-06-25 14:03 负责人:无 分享
已邀请:
小农

小农 (作者)

再提供一个线索:同样的项目代码,打开webview调试;

真机运行时performance的nodes数量是一直在攀升的,而运行到浏览器,nodes节点数是稳定不变的;
取样时间均为两分钟

小农

小农 (作者)

上述线索先请忽略,因为采样时间才两分钟不够长,不能作为节点内存泄露的依据

要回复问题请先登录注册