mobibench源码:https://github.com/ESOS-Lab/Mobibench
安装
交叉编译到移动端
安装一个没有版本号的 gcc-aarch64-linux-gnu
参考这里
sudo apt-get install gcc-aarch64-linux-gnu
修改Makefile
#CROSS=arm-none-linux-gnueabi-
CROSS=aarch64-linux-gnu-
EXENAME = mobibench
SRCS = mobibench.c \
sqlite3.c
INSTALL = install
prefix = /usr/local
bindir = $(prefix)/bin
CFLAGS = -lpthread -ldl
#CFLAGS += -DDEBUG_SCRIPT
#for sqltie3
CFLAGS += -DNDEBUG=1 \
-DHAVE_USLEEP=1 \
-DSQLITE_HAVE_ISNAN \
-DSQLITE_THREADSAFE=2 \
-DSQLITE_TEMP_STORE=3 \
-DSQLITE_POWERSAFE_OVERWRITE=1 \
-DSQLITE_DEFAULT_FILE_FORMAT=4 \
-DSQLITE_DEFAULT_AUTOVACUUM=1 \
-DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
-DSQLITE_ENABLE_FTS3 \
-DSQLITE_ENABLE_FTS3_BACKWARDS \
-DSQLITE_ENABLE_FTS4 \
-DSQLITE_OMIT_BUILTIN_TEST \
-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
-DSQLITE_OMIT_LOAD_EXTENSION \
-DSQLITE_DEFAULT_FILE_PERMISSIONS=0666 \
-DUSE_PREAD64 \
--static
all :
$(CROSS)gcc -o $(EXENAME) $(SRCS) $(CFLAGS)
clean :
@rm -rf mobibench
install : $(EXENAME)
@$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
@$(INSTALL) $(EXENAME) $(DESTDIR)$(bindir)
shell版本参数解析
mobibench [-p pathname] [-f file_size_Kb] [-r record_size_Kb] [-a access_mode] [-h]
[-y sync_mode] [-t thread_num] [-d db_mode] [-n db_transcations]
[-j SQLite_journalmode] [-s SQLite_syncmode] [-g replay_script] [-q]
-p 设置路径名(默认=./mobibench)
-f 以KB为单位设置文件大小(默认值=1024)
-r 以KB为单位设置记录大小(默认值=4)
-a 设置访问模式(0=写入,1=随机写入,2=读取,3=随机读取)(默认值=0)
-y 设置同步模式 (0=Normal, 1=O_SYNC, 2=fsync, 3=O_DIRECT, 4=Sync+direct, 5=mmap, 6=mmap+MS_ASYNC, 7=mmap+MS_SYNC 8=fdatasync) (默认= 0)
-t 设置测试线程数(默认=1)
-d 启用数据库测试模式(0=插入,1=更新,2=删除)
-n 设置数据库事务数(默认=10)
-j 设置 SQLite 日志模式(0=DELETE,1=TRUNCATE,2=PERSIST,3=WAL,4=MEMORY,5=OFF)(默认=1)
-s 设置 SQLite 同步模式 (0=OFF, 1=NORMAL, 2=FULL) (默认=2)
-g 设置回放脚本(MobiGen 的输出)
-q 不显示进度(%)消息
测试SQLite
./mobibench -p ./test_sql/ -d 0 -n 2000
Android 常见应用的包名
应用名称:手机淘宝 包名: com.taobao.taobao
应用名称:支付宝 包名: com.eg.android.AlipayGphone
应用名称:菜鸟裹裹 包名: com.cainiao.wireless
应用名称:钉钉 包名: com.alibaba.android.rimet
应用名称:QQ 包名: com.tencent.mobileqq
应用名称:微信 包名: com.tencent.mm
应用名称:王者荣耀 包名: com.tencent.tmgp.sgame
应用名称:全民K歌 包名: com.tencent.karaoke
应用名称:BOSS直聘 包名: com.hpbr.bosszhipin
应用名称:爱奇艺 包名: com.qiyi.video
应用名称:美团 包名: com.sankuai.meituan
应用名称:美团外卖 包名: com.sankuai.meituan.takeoutnew
应用名称:铁路12306 包名: com.MobileTicket
应用名称:安居客 包名: com.anjuke.android.app
应用名称:腾讯课堂 包名: com.tencent.edu
应用名称:拼多多 包名: com.xunmeng.pinduoduo
应用名称:苏宁易购 包名: com.suning.mobile.ebuy
应用名称:京东 包名: com.jingdong.app.mall
应用名称:携程旅行 包名: ctrip.android.view
应用名称:唯品会 包名: com.achievo.vipshop
应用名称:网易新闻 包名: com.netease.newsreader.activity
应用名称:今日头条极速版 包名: com.ss.android.article.lite
应用名称:今日头条 包名: com.ss.android.article.news
应用名称:UC浏览器 包名: com.UCMobile
应用名称:抖音短视频 包名: com.ss.android.ugc.aweme
应用名称:微博 包名: com.sina.weibo
中国移动 包名: com.greenpoint.android.mc10086.activity
应用名称:手机营业厅(联通) 包名: com.sinovatech.unicom.ui
应用名称:百度贴吧 包名: com.baidu.tieba
应用名称:百度输入法华为版 包名: com.baidu.input_huawei
应用名称:360手机助手 包名: com.qihoo.appstore
抓设备APP trace流程
adb root
adb shell
ps -A | grep ugc#以抖音为例
找到抖音的PID为2941
开抓:
strace -f -t -tt -e trace=file,write,pwrite64,read,pread64,close,fsync,fdatasync,access,stat,fstat,unlink -p 2941 -o /mnt/ugc.txt
抓完后拉到本地:
exit
adb pull /mnt/ugc.txt .
解析
待续
重放
./mobibench -p /data/test_qwj/qwj1 -g ./trace_best/ugc.txt_mg.out