一,Instruments 的介绍:

Instruments 是一个很灵活的、强大的工具;是性能分析、动态跟踪 和分析OS X 以及iOS代码的测试工具;用它可以极为方便收集关于一个或多个系统进程的性能和行为的数据,并能及时随着时间跟踪而产生的数据,并检查所收集的数据,还可以广泛收集不同类型的数据;也可以追踪程序运行的过程,这样instrument就可以帮助我们了解用户的应用程序和操作系统的行为。

1、instrument能做的事情:

  • Instruments是用于动态调追踪和分析OS X和iOS的代码的性能分析和测试工具;
  • Instruments支持多线程的调试;
  • 可以用Instruments去录制和回放,图形用户界面的操作过程
  • 可将录制的图形界面操作和Instruments保存为模板,供以后访问使用。

或者说:

  • 追踪代码中的(甚至是那些难以复制的)问题;
  • 分析程序的性能;
  • 实现程序的自动化测试;
  • 部分实现程序的压力测试;
  • 执行系统级别的通用问题追踪调试;
  • 使你对程序的内部运行过程更加了解。

2、instrument常用工具

  • Leaks(泄漏):一般的查看内存使用情况,检查泄漏的内存,并提供了所有活动的分配和泄漏模块的类对象分配统计信息以及内存地址历史记录;
  • Time Profiler(时间探查):执行对系统的CPU上运行的进程低负载时间为基础采样。
  • Allocations(内存分配):跟踪过程的匿名虚拟内存和堆的对象提供类名和可选保留/释放历史;
  • Activity Monitor(活动监视器):显示器处理的CPU、内存和网络使用情况统计;
  • Blank(空模板):创建一个空的模板,可以从Library库中添加其他模板;
  • Automation(自动化):这个模板执行它模拟用户界面交互为IOS机应用从instrument启动的脚本;
  • Core Data:监测读取、缓存未命中、保存等操作,能直观显示是否保存次数远超实际需要。
  • Cocoa Layout:观察约束变化,找出布局代码的问题所在。
  • Network:跟踪 TCP / IP和 UDP / IP 连接。
  • Automations:创建和编辑测试脚本来自动化 iOS 应用的用户界面测试。

3、instrument最常用工具

  • Leaks:找到引发内存泄漏的起点
  • Time Profiler:分析代码的执行时间,找出导致程序变慢的原因。
  • Allocations:监测内存使用/分配情况

二,Instruments 的调起方式:
 1、快捷键(command + control + i):

  • 首先我们选中Xcode先把模拟器(command + R)运行起来
  • 然后我们再选中Xcode,按快捷键(command + control + i)运行起来

2、点击 Xcode 的 “调试导航”:

  • 首先我们启动工程(选中“调试导航”按钮)

  • 然后选中 “Memory”,再点击右侧的 “Profile in Instruments”,
  • 会自动打开Instruments。这时候会弹出来一个对话框

3、可以通过 Xcode --> Open Developer Tool --> instruments 的方式来打开

java中组合与聚合(聚集)的区别的更多相关文章

  1. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  2. java中的sleep()和wait()的区别

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...

  3. java中的this与super的区别

    java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...

  4. JAVA中extends 与implements有啥区别?

    JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extend ...

  5. JAVA中String = null 与 String = "" 的区别

    JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...

  6. Java中的throw和throws的区别

    Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...

  7. Java中instanceof和isInstance的具体区别

    Java中instanceof和isInstance的具体区别 在Think in Java泛型这一章遇到这个问题,一些博客模糊提到了isInstance是instanceof的动态实现,查阅文档参考 ...

  8. Java中wait和sleep方法的区别

    1.两者的区别 这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁). wait ...

  9. Java中static final 与 final 的区别(转载)

    转自:http://advance0683.iteye.com/blog/1107732 Java中static final 与 final 的区别: 例子: Java代码 import java.u ...

随机推荐

  1. Atitti mybatis的单元测试attilax总结

    Atitti mybatis的单元测试attilax总结 版本mybatis 3.2.4 /palmWin/src/main/java/com/attilax/dao/mybatisTest.java ...

  2. 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大

    日前CSDN采访了祁宇,请他解读C++11的新标准.C++的现状以及未来的发展前景. CSDN:怎么会想到编写<深入应用C++11:代码优化与工程级应用>这本书的?有没有什么故事可以分享下 ...

  3. 安装astrixx firefox插件

    以上步骤适用于firefox 45.0.1. 将astrixx的firefox插件下载到本地,这个插件的下载地址很难找...全名是astrixx proxy switcher about:config ...

  4. Android查询不到电话号码解决方法

    貌似联系人有三个数据库,且不同步,另外也有可能是版本问题. 解决方案:https://github.com/codinguser/android_contact_picker 接下来会对其进行一些改造 ...

  5. 【Android】Android布局文件的一些属性值

    第一类:属性值 true或者 false   android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 androi ...

  6. 【Java】Java NIO

    NIO 为什么要使用 NIO? NIO 的创建目的是为了让 Java 程序员可以实现高速 I/O 而无需编写自定义的本机代码.NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而 ...

  7. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-11层驱动之FSMC

    视频简介:该视频介绍iCore3应用开发平台中FSMC通信的配置方法及ARM与FPGA通信的方法. 源视频包下载地址:链接:http://pan.baidu.com/s/1slbHOCH 密码:n06 ...

  8. [转载][IoC容器Unity]第二回:Lifetime Managers生命周期

    1.引言 Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理,非常方便,下面就介 ...

  9. [NM]打开NetworkManager和wpa_supplicant的DEBUG接口

    turn on the DEBUG log in /etc/NetworkManager/NetworkManager.conf and restart NetworkManager. [loggin ...

  10. mybatis通用mapper源码解析(一)

    1.配置JavaBean与数据库表字段映射关系 /** * 字段转换方式 */ public enum Style { normal, //原值 camelhump, //驼峰转下划线 upperca ...