【发布时间】:2020-02-03 10:27:48
【问题描述】:
我想看看,哪个函数让我的 JS 线程最忙。但是在任何分析选项中,我都看不到任何与 JS 相关的东西。
1) 分析
最有用的是V8 profiler,它可以在调试模式下访问(在 Chrome DevTools 或 React Native Debugger 中)。有人here 建议寻找debuggerWorker.js,但在我的Profiling session 中缺少这个线程。
2) 系统跟踪
我找到了 JS 线程(mqt_js),但是它被折叠了,无法钻入。有任何想法吗?
我跑systrace.py --time=20 -o trace.html sched gfx view -a com.my.rnapp
3) RN“启用采样分析器”
我什至在 RN 调试菜单中尝试了(未记录的)“启用采样分析器”选项,它似乎工作,并显示一条带有跟踪位置的消息,但不幸的是文件每次都是空的。 (例如/data/user/0/com.my.rnapp/cache/sampling-profiler-trace119834863.cpuprofile)。使用adb shell 和ls -la 进行检查。
其他信息:
- 测试了两个 dev/prod 版本、本地 Metro 捆绑器/捆绑应用程序
- React Native 0.61.1
- 带有 Android API 25 的模拟器(物理设备也是如此)
- macOS 10.14
【问题讨论】:
-
我在 6 个月前打开了一个关于 systrace 被破坏的问题,但它被忽略了。如果您添加评论并竖起大拇指,它可能会引起一些关注。 github.com/facebook/react-native/issues/26032
-
谢谢,此后就该问题进行了一些沟通。似乎他们知道这件事。我喜欢你的评论。我不写“我也是”cmets。 :)
标签: javascript android react-native