[Android]SQLite版本升级前后数据对比

[Android]SQLite版本升级前后数据对比

前言

目前AOSP采用3.22.0版本的SQLite。截至目前,SQLite.org官网释放的最新版为3.31.1。
为了论证3.31.1是否在Android系统上有明显的性能提升,故而有了如下的测试数据;

基本信息

参与测试的SQLite版本: 3.22.0(Android Q基线默认) vs 3.31.1(截止目前最新版本)

被测机型: MT6761D/2GB/32GB/Android Q

控制变量: 在相同代码进度下,仅替换external/sqlite/dist/下的代码后编译软件进行对比测试

测试工具:

Androbench - 通用测试工具,版本5.0.1

IOEmulator - 自研测试工具,版本1.1

I. Androbench - SQLite跑分数据

SQLite版本 Insert(QPS/sec) Update (QPS/sec) Delete (QPS/sec)
3.22.0 540.93/3.78 665.3/3.07 832.14/2.45
3.31.1 544.93/3.75 682.2/3.0 831.29/2.46

小结: UPDATE操作有2%~3%的稳定提升,其余部分没有明显提升;


II. IOEmulator V1.2测试数据

数据库属性:

单页大小:4KB
表数量:5
列数:10
Auto Vacuum:2 - INCREMENTAL
Sync Mode:2 - FULL

INSERT

数据内容:1
数据长度:100
数据行数:200
数据表数:5
数据列数:10
SQLite版本 #1(ms) #2(ms) #3(ms) #4(ms) #5(ms) AVG(ms)
3.22.0 1443 1454 1451 1448 1465 1452.2
3.31.1 1427 1445 1446 1446 1439 1440.6

UPDATE

数据内容:0
数据长度:100
数据行数:200
数据表数:5
数据列数:10
SQLite版本 #1(ms) #2(ms) #3(ms) #4(ms) #5(ms) AVG(ms)
3.22.0 1170 1169 1180 1182 1170 1174.2
3.31.1 1177 1162 1166 1164 1168 1167.4

DELETE

数据行数:200
数据表数:5
SQLite版本 #1(ms) #2(ms) #3(ms) #4(ms) #5(ms) AVG(ms)
3.22.0 1411 1397 1412 1410 1387 1403.4
3.31.1 1387 1386 1395 1390 1387 1389

小结: INSERT/UPDATE有1%不到的提升,DELETE有1%的提升;


总结

从Androbench测试数据来看,最新版(3.31.1)SQLite在update处理速度上有2%以上的提升;
从IOEmulator测试数据来看,最新版(3.31.1)SQLite在insert/update/delete处理速度上有1%左右的提升;

综上,考虑到客观偏差,3.31.1版本的SQLite较3.22.0的提升效果微乎其微,没有强制升级的必要;

其他

有空可以看看其他pragma组合、其他场景下的数据,但是考虑到上述的测试场景是Android Q的默认配置参数,因此该结果已具有较强说服力了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章