使用工具检测你的app:模拟器和真机测试 之二

发布时间:2020-07-25 03:02:39 作者:iKingLai
来源:网络 阅读:2162

工具


工具主要有以下3种:


基本工具


在本部分,我讨论的是在代码块中使用日志作为一个基本的工具来测试运行的时间。


用日志记录运行的时间


基本工具其中之一就是用日志来记录代码块开始和结束的时间。通常,记日志是用NSLog来实现的。使用这个基本的工具,开发者能够检测每行代码或代码块运行的时间。


例如,运行下面的代码块


  1. NSDate *date1 = [NSDate date];

  2. for (int i = 0; i < 1000; i++) {

       // Do calculation here

  3. }

    NSDate *date2 = [NSDate date];
    NSLog (@”time: %f”, [date2 timeIntervalSinceDate:date1]);



返回的结果:


time:0.0123(秒为单位)


优点:


缺点:


使用时机:


内存工具


关于内存的问题,你只有一个主要要关注的方面:高内存使用。在旧的代码中有两个要关注的:内存泄露和内存回收。对于新的项目,你可以直接使用新的自动引用计数(ARC)。对于旧的项目,你可以使用控制工具对他们进行转换。


但是,不是每一个项目都是可以转的,有很多问题和内存管理策略阻止你进行转换。如果尝试遵从新的管理策略可能会导致更多的麻烦。因此,我主要讨论对象分配的内存工具,简单的介绍内存泄露和内存回收的工具。



注意:我这里介绍的所有内存工具都可以运行在模拟器上。使用模拟器的好处是它运行比较快,安装app也比较迅速。但是,要小心!我强烈建议你同样要在真机上测试你的app,因为模拟器和真机是不同的。他们编译不同,架构也不同。



内存分配


内存分配能够帮助你理解你到底分配了多少对象。这意味着在内存中分配和保持了很多对象。这些对象没有释放,因为他们正在使用。


Allocation


选择 Product  ->  Profile  然后在打开的窗口(如图 2-1)中选择 Allocations


使用工具检测你的app:模拟器和真机测试 之二


在选择Allocations instrument之后,你会看到一个Allocation 面板,向你展示了所有必要的信息,如图2-2 。


在Allocations 面板(图2-2)显示了“created and still living”jobs,这样就能够什么对象还在内存中,以及什么对象消耗了大部分的内存。如果你从iOS环境中收到内存警告,例如“Received memory warning. Level =1 ”,你应该使用这个工具。


这些细节想你展示了何时,哪一行代码,哪一个类负责创建和处理对象。有了这些信息,你能非常简单的处理内存问题。这是一个非常好的工具来跟踪缓存算法和方法(查看第4张了解更多细节)。


使用工具检测你的app:模拟器和真机测试 之二


图2-3和2-4显示了更多细节,什么对象还存活着,什么对象消耗了你应用的大部分内存。在图2-3中,你可以看到在你的应用中,对象创建和存活的细节列表。


使用工具检测你的app:模拟器和真机测试 之二

在图2-4中,你可以看到创建这些对象调用的方法。


使用工具检测你的app:模拟器和真机测试 之二


优点:


缺点:


使用时机

推荐阅读:
  1. 运维工具SaltStack之二常见模块及API
  2. Android计算app启动时间之二

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios 性能优化 pp

上一篇:Linux 系统下软件安装与管理

下一篇:Dojo 样式简介

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》