我正在调试运行缓慢的.net应用程序,但我想找出原因。
[Xamarin Android分析器仅适用于Visual Studio Enterprise,因此,按照指南here,似乎Android Studio是自然的替代品。
这很宏大,但事件探查器似乎未显示单个.net调用的任何数据,而只是显示系统级android调用。我猜想这与现在的情况有关。.net被打包进入一个Android项目。
我的问题是:有什么方法可以使这项工作正常进行,以便我可以追溯到.net调用?还是我必须在管理之前屈服并乞求这一任务的VS Ultimate许可证?
这可以通过生成mlpd文件,然后将其导入Xamarin来实现。
您想让您的设备运行(如果不是仿真器,则通过USB连接,然后运行以下命令将输出保存到MLPD文件(credit)
adb shell setprop debug.mono.profile "log:calls,alloc,output=/sdcard/Download/output.mlpd,maxframes=8,calldepth=100"
这会将mlpd文件输出到SD卡。请注意,MLPD文件可能非常大,因此,如果您在仿真器中运行该文件,则需要为该映像的SD卡分配一个较大的大小,否则可能会耗尽VM上的磁盘空间。当连接调试器时,我也无法使它正常工作,但是在没有调试器时,它确实可以正常工作。因此,如果您的调试器无法连接,则可以。
完成应用调试后,您可以使用adb pull命令从VM中检索MLPD文件,如下所示:
adb pull /sdcard/Download/output.mlpd firstRun.mlpd
然后,最后,您可以将mlpd文件导入xamarin