HBuilderX2.8.0 版本开始调整uni-app默认使用v8引擎
uni-app项目中的主要业务逻辑代码都是基于js代码控制,运行在独立的js引擎中,HBuilderX2.7.14及以下版本默认使用开源项目weex自带的JavaScriptCore引擎,JavaScriptCore 是基于 JavaScriptCore 2016版 进行了裁剪,已经数年未更新。
HBuilderX2.8.0中集成的V8引擎是基于2020年5月份的8.3版本。
JS引擎对比
为了对比测试JS引擎性能及内存占用情况,我们使用简单uni-app应用进行对比测试。
在华为mete30pro测试10次平均数据如下:  
| JS引擎 | 初始化时间 | uni-app框架加载时间 | 简单App启动时间 | 亿次数组操作耗时 | 内存占用 | 
|---|---|---|---|---|---|
| v8 | 4.83ms | 51.5ms | 449.67ms | 818.33ms | 26M | 
| JavaScriptCore | 28ms | 59.17ms | 498.83ms | 5261.67ms | 29M | 
亿次数组操作代码
    var start = new Date().valueOf()  
    var arr = []  
    for (var i = 0; i < 100000; i++) {  
        var arrIn = []  
        for (var j = 0; j < 1000; j++) {  
            arrIn.push(j)  
        }  
        arr.push(arr)  
    }  
    var end = new Date().valueOf()  
    console.log("耗时:"+(end - start)+"ms");性能
从测试数据看v8引擎相对于JavaScriptCore引擎有性能优势,特别是在大量数组操作方面,内存占用方面也有一些优势。  
安装包大小
但使用V8引擎相对JSC引擎安装包会变大,仅包含armeabi-v7a类型cpu时约增加1.5M,同时包含armeabi-v7a和arm64类型cpu时约增加3M。  
配置使用JSC引擎
云打包配置
如果对安装包大小比较在意,也可以配置继续使用JavaScriptCore引擎
打开项目的manifest.json文件,切换到“代码视图”  
- uni-app项目:
 在"app-plus" -> "distribute" -> "android"节点下添加jsEngine字段
- 5+ App项目:
 不支持使用JS独立引起
    "jsEngine": "jsc"注意:需提交云端打包才能生效
离线打包配置
| JS引擎 | aar库 | 
|---|---|
| v8 | uniapp-v8-release.aar | 
| JavaScriptCore | uniapp-release.aar | 
离线SDK自2.8.1开始已将默认引擎切换到V8,用户可以根据自己的需求切换引擎。
注意:不同引擎的aar库不能同时使用!
 
             
             
             
			 
                                                                             
            
12 个评论
要回复文章请先登录或注册
1***@126.com
DCloud_App_Array (作者)
4***@qq.com
Web默默
风扬
DCloud_App_Array (作者)
潘毅康
luch
DCloud_heavensoft
chenzefeng09