Alert Scheduling delay
Running
17.167 ms
Sleeping
2.626 ms
Not scheduled, but runnable
0.577 ms
Uninterruptible Sleep | WakeKill - Block I/O
13.315 ms
Blocking I/O delay
2.865 ms
Frame
Description
Work to produce this frame was descheduled for several milliseconds,
contributing to jank. Ensure that code on the UI thread doesn't block on work
being done on other threads, and that background threads (doing e.g. network
or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND
or lower so they are less likely to interrupt the UI thread. These background
threads should show up with a priority number of 130 or higher in the
scheduling section under the Kernel process.
复制代码
B点的报告为:
Alert Long View#draw()
Time spent
3.053 ms
Record View#draw() took 3.05ms
Frame
Description
Recording the drawing commands of invalidated Views took a long time. Avoid
significant work in View or Drawable custom drawing, especially allocations
or drawing to Bitmaps.
Video Link Android Performance Patterns: Invalidations, Layouts, and Performance
Video Link Android Performance Patterns: Avoiding Allocations in onDraw()
复制代码
C点报告为:
Alert Scheduling delay
Running
17.576 ms
Sleeping
17.805 ms
Not scheduled, but runnable
4.108 ms
Frame
Description
Work to produce this frame was descheduled for several milliseconds,
contributing to jank. Ensure that code on the UI thread doesn't block on work
being done on other threads, and that background threads (doing e.g. network
or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND
or lower so they are less likely to interrupt the UI thread. These background
threads should show up with a priority number of 130 or higher in the
scheduling section under the Kernel process.
复制代码
▶Alert Long View#draw()
Time spent
3.053 ms
Record View#draw() took 3.05ms
Frame
Description
Recording the drawing commands of invalidated Views took a long time.
Avoid significant work in View or Drawable custom drawing, especially
allocations or drawing to Bitmaps.
Video Link Android Performance Patterns: Invalidations, Layouts, and Performance
Video Link Android Performance Patterns: Avoiding Allocations in onDraw()
▶Alert Scheduling delay
Running
17.167 ms
Sleeping
2.626 ms
Not scheduled, but runnable
0.577 ms
Uninterruptible Sleep | WakeKill - Block I/O
13.315 ms
Blocking I/O delay
2.865 ms
Frame
Description
Work to produce this frame was descheduled for several milliseconds, contributing to jank. Ensure that code on the UI thread doesn't block on work
being done on other threads, and that background threads (doing e.g. network
or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND
or lower so they are less likely to interrupt the UI thread. These background
threads should show up with a priority number of 130 or higher in the
scheduling section under the Kernel process.
复制代码
G点报告为:
▶Alert Expensive Bitmap uploads
Pixels uploaded
"2.25 million"
Time spent
15.256 ms
Upload 3000x750 Texture took 15.26ms
Frame
Description
Bitmaps that have been modified / newly drawn must be uploaded to the GPU.
Since this is expensive if the total number of pixels uploaded is large,
reduce the amount of Bitmap churn in this animation/context, per frame.
▶Alert Scheduling delay
Running
17.576 ms
Sleeping
17.805 ms
Not scheduled, but runnable
4.108 ms
Frame
Description
Work to produce this frame was descheduled for several milliseconds,
contributing to jank. Ensure that code on the UI thread doesn't block on work
being done on other threads, and that background threads (doing e.g. network
or bitmap loading) are running at android.os.Process#THREAD_PRIORITY_BACKGROUND
or lower so they are less likely to interrupt the UI thread. These background
threads should show up with a priority number of 130 or higher in the
scheduling section under the Kernel process.
复制代码
方法面板展示了所有方法的执行情况,点击某个方法可以查看在对应线程上的执行时间区域,并会显示其父方法及子方法。
每个方法包括如下信息列,可点击某列进行排序,从而确定产生性能问题的函数:
Incl Cpu Time, Excl Cpu Time, Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call
所有的Time都是以毫秒计算。每列具体含义及作用如下:
a. Incl表示将所有子函数耗时也计算在内,Excl则表示不包括子函数的调用时间。对比可以确定耗时操作发生是自身还是子函数中。
b. Cpu Time表示占用cpu执行的时间,Real Time包括Cpu Time以及等待、切换的时间等,所以一般都大于Cpu Time。对比可以判断耗时操作是否在cpu执行段内。
c. 上面四个指标对应的%表示函数在总时间的占比。方便查看某个函数的时间占比。
d. Calls+RecurCalls/Total表示被外部调用次数+递归次数/总次数。可以查看调用次数是否符合自己预期。
e. Cpu Time/Call, Real Time/Call表示总的Cpu Time及Real Time与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每个函数的性能。