mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-24 20:00:37 +00:00
docs: Weex
This commit is contained in:
@@ -6634,6 +6634,27 @@ typedef NS_ENUM(NSUInteger, WeexAPMType) {
|
||||
};
|
||||
```
|
||||
|
||||
统计线上数据发现,Weex 页面渲染失败率为4.09%,所以看上去页面渲染失败率还是蛮高的。目前发现失败率最高的场景为 App 启动时候按照功能模块组织的配置清单。
|
||||
类似于下面的配置:
|
||||
```
|
||||
"//goods/detail": {
|
||||
"configParams": "",
|
||||
"js": "https://xxcdn.cn/bizName/Phone/Goods/detail.js",
|
||||
"id": 00001,
|
||||
"pageId": 00101,
|
||||
"md5": "f2d8d44bc6d5693b46fb7849bcd00e50"
|
||||
},
|
||||
```
|
||||
|
||||
因此,针对于这样的场景。我们希望针对 Weex 资源的拉取和访问机制做一些优化。
|
||||
目前有几个流程不太合理:
|
||||
1. 当前启动时的js 预载入流程里的JS下载失败 和 进入Weex页面后的JS拉取失败 两处的上报失败未做区分,没法实际统计加载页面时有多少JS获取失败的情况。
|
||||
2. 随着业务迭代, Weex 页面越来越多,需要做 JS 拉取相关优化,避免白屏问题
|
||||
3. 目前 JS 缓存逻辑为,每个 Weex 模块单独维护一个 LRUCache,并且会做大量的预加载,但可能大多数页面根本不会访问到。浪费了内存资源去做了一些不会被调用到的页面预加载,可能还会造成 OOM 问题
|
||||

|
||||
|
||||
// todo? 参考前端资源模块化,如何实现资源预加载(全局 LRU或者基于用户行为路径的预热功能,比如某个收银员角色固定的情况下,他日常的操作行为是固定的,商品扫码、开单)
|
||||
|
||||
|
||||
|
||||
### 2. Flutter 异常监控
|
||||
@@ -6727,6 +6748,8 @@ typedef NS_ENUM(NSUInteger, WeexAPMType) {
|
||||
另外随着问题的暴露或者技术研究的渗入,监控方案本身是可以迭代演进的。
|
||||
|
||||
|
||||
1. 8060 会有特例,比如8060满足了,且此时主线程空了。因为某个 ImageView 在子线程上根据 URL 异步请求资源,之后会再次触发渲染。所以这个情况下,方案还是存在问题的
|
||||
|
||||
|
||||
## 十一、 APM 小结
|
||||
|
||||
|
||||
BIN
assets/WeexResourcePull.png
Normal file
BIN
assets/WeexResourcePull.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 218 KiB |
Reference in New Issue
Block a user