原理

使用 system trace 时,会记录最近 5s 的 kernel trace,然后分析下面的操作:

  1. Scheduling activity
  2. System calls
  3. Virtual memory operations

使用

在代码里插入相应的语句,当运行到这里是,会在 Instrument 的结果中。
插入的语句可以指明一个事件的发生,或者一个时间段的起始和结束。其中第一个参数指定事件的 ID, 是一个整数。

//某个事件的发生
// Emit a signpost for Instruments
kdebug_signpost(5, 0, 0, 0, 0) //事件段的起始和结束
// Timing an activity (code 10 - "Start Up")
kdebug_signpost_start(10, 0, 0, 0, 0);
[self loadAssets];
kdebug_signpost_end(10, 0, 0, 0, 0);

查看感兴趣的点的统计信息

可以在 5 个选项之间查看。

如果选择第四个,可以看到统计信息,包括最小持续时间、平均时长、最多持续时间等。

选择列表中的某个点以后,右键选择,可以过滤掉其他时间的信息。

查看线程信息

选中某一个线程以后,可以选择看出线程的信息。

Narrative 按照时间顺序给出了线程调度的信息。

Summary: Thread State 给出了线程处于各个状态的统计信息。

time profile 只是查看 CPU 的执行情况,如果一个线程长时间得不到调度,在 time profile 里得不到相应的信息。

System Load

可以看到各个时刻的线程的状态。

User Interactive Load Average

统计的是 10ms 内,线程优先级大于33 以及 QoS 是 User Interactive Class 的线程数目。
当数目大于 CPU 数目时,会标记为橙色。

参考

System Trace in Depth的更多相关文章

  1. iOS.mach_msg_trap()

    mach_msg_trap() 1. mach_msg() mach_msg_trap() " > The Debugger window shows the calling stac ...

  2. 结合 RunLoop 和 Instrument 定位卡顿

    iOS 应用,丝般顺滑的理想情况就是 60FPS (对于 iPad Pro 是 240FPS),即在 16ms 之内完成一次渲染.如果找到在每次渲染花费了多久,究竟做了什么事情,那么就可以进行针对性的 ...

  3. WWDC 2016 盛宴

    转自:http://www.jianshu.com/p/72dd8306c817 整理和维护人:pmstGitHub 链接:WWDC-2016-Feast目前只是整理官方给出的 WWDC 2016 视 ...

  4. Trace1:Default Trace

    sql server trace 是一个轻量级的追踪工具,对追踪数据库的行为很有用,因此,sql server内置一个trace(default trace). 1,sql server 内置Defa ...

  5. System Error Codes

    很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx M ...

  6. 创建一个dynamics 365 CRM online plugin (九) - Context.Depth

    让我们来看看官方文档是怎么讲的 https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide ...

  7. Microsoft SQL Server Trace Flags

    Complete list of Microsoft SQL Server trace flags (585 trace flags) REMEMBER: Be extremely careful w ...

  8. PatentTips - Sprite Graphics Rendering System

    BACKGROUND This disclosure relates generally to the field of computer graphics. More particularly, b ...

  9. LInux_System_Call_INT_80h

    Int 80h Website (Copy from Linux-System-Call) List of Linux/i386 system calls Copyright (C) 1999-200 ...

随机推荐

  1. /etc/inittab加入自动启动格式

    R01:35:respawn:/usr/bin/exe_program 说明 R01:标识,每一行必须唯一(R01并无特殊含义,可自定义). 35:有效模式,3字符界面启动,5图形界面启动 respa ...

  2. linux 静态链接库demo

    目录结构 ./main.c        #include<stdio.h> #include "./lib/jtlib1.h" int main() {     pr ...

  3. 2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)

    传送门 简单概率dp. 显然每次转移的式子可以用一个矩阵表示出来: 这个是循环矩阵. 因此只用维护第一行快速幂一波就行了. 代码: #include<bits/stdc++.h> #def ...

  4. 转@RequestParam,@PathParam,@PathVariable等注解区别

    转自:http://blog.csdn.net/u011410529/article/details/66974974 @RequestParam 和 @PathVariable 注解是用于从requ ...

  5. JVM,Java虚拟机基础知识新手入门教程(超级通熟易懂)

    作者:请叫我红领巾,转载请注明出处http://www.cnblogs.com/xxzhuang/p/7453746.html,简书地址:http://www.jianshu.com/p/b963b3 ...

  6. virtualenv 安装及使用[转]

    一如既往,官方文档: https://virtualenv.pypa.io/en/latest/   下载地址:https://pypi.python.org/pypi/virtualenv#down ...

  7. (线段树) Count the Colors --ZOJ --1610

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82832#problem/F http://acm.zju.edu.cn/onli ...

  8. android插件化简述

    2015年是Android插件化技术突飞猛进的一年,随着业务的发展各大厂商都碰到了Android Native平台的瓶颈: 从技术上讲,业务逻辑的复杂导致代码量急剧膨胀,各大厂商陆续出到65535方法 ...

  9. java实现WC项目

    个人项目:WC   wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单 ...

  10. linux几种查看日志的方法

    linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档 ...