Cocoa 中测量时间的方法

1. The Methods to Get Current Timestamp

iOS中获取时间戳的方法:

A. CACurrentMediaTime()

B. gettimeofday

C. CFAbsoluteTimeGetCurrent

D. [NSDate date] timeIntervalSince1970]

E. mach_absolute_time()

Ref[1]对比了以上方法的耗时,但是其准确性需要验证。

2. Clock Time

时钟时间

"CFAbsoluteTimeGetCurrent [NSDate timeIntervalSinceReferenceDate] return clock time.

Clock time is synchronized with the network time signal. So, they are not suitable for timestamp." Ref[2]

3. 各种方法的对比以及适用场景

3.1 对于测量App中某些操作的所消耗的时间,用CACurrentMediaTime()来说很合适。


Reference

1. http://stackoverflow.com/questions/358207/iphone-how-to-get-current-milliseconds

2. Tip: CACurrentMediaTime

http://www.alexcurylo.com/blog/2009/09/05/tip-cacurrentmediatime/

3. iOS.mach_absolute_time

4. Benchmarking

http://nshipster.com/benchmarking/

http://nshipster.cn/benchmarking/

5. ‘CACurrentMediaTime()’

http://bendodson.com/weblog/2013/01/29/ca-current-media-time/


Todo

1. Timers, Clocks, and Cocoa

http://devetc.org/code/2014/01/21/timers-clocks-and-cocoa.html

2.

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=1019

3. All in the Timing: Keeping Track of Time Passed on iOS

http://blog.spacemanlabs.com/2011/09/all-in-the-timing-keeping-track-of-time-passed-on-ios/

4. How to convert mach_absolute_time() into seconds?

iOS.GetCurrentTimestamp的更多相关文章

  1. Category 特性在 iOS 组件化中的应用与管控

    背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性. Category 就是对装饰模式的一种具体实现.它的主要作用是在不改变原有类的前提下, ...

  2. iOS可视化动态绘制连通图

    上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...

  3. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  4. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  5. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  6. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  7. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  8. 告别被拒,如何提升iOS审核通过率(上篇)

    iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...

  9. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

随机推荐

  1. 学JS的心路历程-函式(五)箭头函式

    箭头函式arrow function 为了能够以更简短的方式建立函式,ES6变推出了箭头函式. 用说明的可能会不太懂,我们先拿之前的数组排序例子来看: var arr = [2,1,6,12,3,77 ...

  2. vue-concise-slider 一个轻量的vue幻灯片组件

    vue-concise-slider 一个轻量的vue幻灯片组件 阅读 541 收藏 35 2017-07-03 原文链接:github.com 外卖订单处理有烦恼?试试美团点评餐饮开放平台吧,可实现 ...

  3. CentOS7 安装 GitLab

    虽然GitHub已经很好了,但是我们必须联上公网才可以使用并且如果不付费的话,你的代码在网上就是公开的!但是在企业环境中,我们公司的代码不希望被公开并且也不想付费给GitHub,这时怎么办呢?我们可以 ...

  4. MVC002之获取当前用户失败(Context.User.Identity.Name)

    通过Context.User.Identity.Name想获取当前用户的域帐号信息(如:Greatwall\Snow) 可值等于"",什么原因呢. 该问题和MVC关系不大,主要是I ...

  5. JMeter学习(二十九)自动化badboy脚本开发技术(转载)

    转载自 http://www.cnblogs.com/yangxia-test 一般人用badboy都是使用它的录制功能,其它badboy还是一款自动化的工具,它可以实现检查点.参数化.迭代.并发.报 ...

  6. vmware 完全关闭时间同步

    参考 http://blog.51cto.com/hezhang/1535577 修改.vmx文件 tools.syncTime = "FALSE" time.synchroniz ...

  7. oracle 11g SQL语句补充学习

    添加列: alter table tablename add columnName datatype (not null);        -------需要注意一点的是在添加一列为非空的时候, 表必 ...

  8. 第十章 优先级队列 (a1)需求与动机

  9. DES算法实现(C++版)

    #include "memory.h" #include "stdio.h" enum {encrypt,decrypt};//ENCRYPT:加密,DECRY ...

  10. unity 3d音效如何设置?,近大远小

    请问怎么将导入的音频文件设置为“3D Sound”?这是我导入的音频文件: 现在3D音效的设置不在导入音效文件的地方,而是在AudioSource的SpatialBlend属性,0表示2D,1表示3D ...