xamarin.android - 使用命令行在 Xamarin 分析中触发快照
问题描述
我使用以下技术从 android 设备为我的应用程序获取堆快照。
启用 heapshot 日志记录:
adb shell setprop debug.mono.profile 日志:堆
启动您的应用程序。(如果您的应用程序在 (1) 之前已经运行,请终止并重新启动它。)
使用您的应用程序。
获取应用的配置文件数据:
adb 拉 /data/data/@PACKAGE_NAME@/files/。override /profile.mlpd @PACKAGE_NAME@ 是您的应用程序的包名,例如,如果您的包是 FooBar.FooBar-Signed.apk,那么 @PACKAGE_NAME@ 将是 FooBar.FooBar。
当我在 Xamarin 分析器中打开生成的 mlpd 文件时,它会显示所有分配,但不显示任何快照/实时对象。
如何通过命令行触发快照?是否有任何 adb 命令或任何可能用于特定快照?因为我正在自动化所有场景。
解决方案
非常旧的帖子,但仍将答案发布为可能会帮助有需要的人: 使用以下命令:
首先设置属性
adb shell setprop debug.mono.profile log:alloc,maxframes=2,heapshot=10000ms
重新启动应用程序并在操作/测试用例之后使用以下命令提取文件
adb shell 拉 /data/data/@PACKAGE_NAME@/files/。覆盖/profile.mlpd profile1.mlpd
分析完成后强制停止应用程序以停止分析
adb shell 是强制停止 @PACKAGE_NAME@
有关更多信息,请参阅链接: https ://www.mono-project.com/docs/debug+profile/profile/profiler/
推荐阅读
- java - Jackson @JsonValue 与 @JsonTypeInfo 冲突;如何让它们一起工作
- ajax - ajax重定向到带有模型的另一个页面
- php - symfony + api 平台 - 为路由创建别名
- asp.net - 如何在不使用图像 url 的情况下将内存流绑定到 asp.net 图像控件
- python - Django class based View with 2 post forms returns valid unknown
- go - Golang gin 代理处理苗条的前端和 Golang api
- java - 为什么 try-catch 没有给出想要的输出?
- swift - 切换到垂直轴时堆栈视图中断
- ios - “无法打开该文件,因为您无权查看它。” 用于 iCloud 视频
- html - 选项卡完成在视觉代码工作室中不起作用