我正在分析每 5 秒执行一次的应用程序中的函数。但是,我在跟踪视图的“Calls + Rec/Total”选项中只看到了一半的调用。我正在使用 1 微秒作为采样间隔的基于样本的分析。我尝试使用这种采样率,但没有明显的改进。例如,当我运行视图 236 秒时,我应该在“Call + Rec/Total”选项中获得 47 个调用,但是如下图所示,它只显示 20 个。谁能评论我做错了什么?
Tested devices:
Device 1: SmartWatch LG R (Android 6.0.1), observes this problem
Device 2: Samsung Galaxy S2 (Android 5.0.1 Custom ROM), observes this problem
Device 3: Samsung Galaxy S2 (Android 4.4, Custom ROM), works fine
更新: 根据我与@kws 的讨论,我在第二台三星(最初使用 Android 5.1.1)上安装了 Android 4.4.4,现在基于采样的方法可以正常工作。但是,搭载 Android 6.0.1 的智能手表仍然采用旧的跟踪视图方式。
更新 2: 我认为基于采样的方法没有捕获非常轻量级函数的分辨率,因为这些函数可能是在两个样本之间执行的,而探查器会遗漏它。虽然它以微秒作为采样间隔记录数据,但我怀疑它是否可以达到如此详细的粒度。这个论点背后的原因是,当我用它测试一个非常轻量级的函数时,并不是每个调用都在所有三个设备上都被捕获。