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