[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的默認配置參數,因此該結果已具有較強說服力了。

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