-
Notifications
You must be signed in to change notification settings - Fork 207
性能测试流程
xuwhale6 edited this page Dec 12, 2019
·
4 revisions
MLN性能测试,需要关闭debug开关、使用编译后的lua二进制代码。避免debug影响性能。
测试“灵感集”二级页性能,流程如下:
- 克隆远程库
git clone https://github.com/momotech/MLN
,并在Android Studio中打开MLN/MLN-Android
目录 - 找到
sample/src/main/java/com/immomo/demo/App.java
目录,在MLSEngine初始化时,将debug参数设置为false - 运行release版的sample工程,如下图:
- 进入app后,点击“Demo工程”按钮。点击“发现页”的cell的图片,即可进入二级页,开始测试。
提示:
* sample中的美丽说代码,已经是二进制.lua文件。目录为:sample/src/main/assets/gallery
* 美丽说源码目录:sample/src/main/assets/gallerySource
- 测试前,将列表向下滑加载出足够多的数据,然后滑回到列表顶部(避免加载动画干扰)
- 执行
python sample/src/main/assets/fps.py
命令。内部运行adb指令。自动滑动25次,打印卡帧比数据。 如下图:
- 在sample工程中,打开LuaViewActivity.java文件,在
onCreate()
方法第一行加入如下代码:
final long startTime = System.currentTimeMillis();
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Log.d("MLN test", "onGlobalLayout: " + (System.currentTimeMillis() - startTime));
}
});
- 给instance对象,设置监听,代码如下:
instance.setScriptStateListener(new ScriptStateListener() {
@Override
public void onSuccess() {
Log.d("MLN test", "onSuccess: " + (System.currentTimeMillis() - startTime));
}
@Override
public void onFailed(Reason reason) {}
});
- MLN的页面加载过程为:页面创建 -> MLN虚拟机运行 -> window布局完成。监听的时机是:虚拟机
onSuccess()
回调后,onGlobalLayout()
回调。 - 提示:为了避免数据加载影响,数据延迟了200ms请求。测试结果如下图:
使用Android Studio自带的profiler工具测试。点击查看使用教程