1.perfetto网站
https://ui.perfetto.dev/
2.快捷键
3.线程状态分析
Runnable表示线程正在运行或者等待CPU执行
Runnable (Preempted)表示线程正在运行,但在运行过程中被其他高优先级线程抢占
Running表示线程正在运行
Uninterruptible Sleep Uninterruptible Sleep (IO)不可中断的休眠状态,IO阻塞
Uninterruptible Sleep (non-IO)不可中断的休眠状态,非IO导致,在等内核锁。通常是低内存导致等待、各种各样的内核锁。
Sleeping表示线程正在休眠或者等待某个条件满足
3.1查看Scheduling wakeups
选中CPU的Running状态
然后切到CPU Slice,就可以看到wakeup关系
4.CPU分析
4.1 CPU Usage
圈出需要分析的CPU区域
cpu 使用率 = (Wall duration)/ (cpu 总核数) / (Selected range)