为什么我的Java方法在AndroidStudio3.5.1的CPU-Profiler中没有列出?

Why my Java method is not listed in CPU-Profiler in AndroidStudio3.5.1?

我正在使用 Android Studio3.5.1 进行 cpu 分析,使用 Android-Profiler 使用示例 Java 方法 option.When 非优化版本我使用的一种方法,方法在方法跟踪窗格中列出。但是当我尝试使用相同方法的优化版本时,该方法没有在窗格中列出。

尝试使用相同方法的两个版本。

public int computeFibonacci(int positionInFibSequence) {
     int prev = 0;
     int current = 1;
     int newValue;
     for (int i=1; i<positionInFibSequence; i++) {
         newValue = current + prev;
         prev = current;
         current = newValue;
     }
     return current;

     /*if (positionInFibSequence <= 2) {
         return 1;
     } else {
         return computeFibonacci(positionInFibSequence - 1)
                 + computeFibonacci(positionInFibSequence - 2);
     }*/
 } 

找到答案。

因为有人可能有类似的问题,所以在这里更新。

An inherent issue of sampled-based tracing is that if your app enters a method after a capture of the call stack and exits the method before the next capture, that method call is not logged by the profiler. If you are interested in tracing methods with such short lifecycles, you should use instrumented tracing.

word of official document

谢谢。

编码愉快。