美文网首页
iOS网络性能指标统计

iOS网络性能指标统计

作者: SpringAlways | 来源:发表于2020-05-26 23:30 被阅读0次

    URL Loading System

    概念

    iOS中用标准的或自定义的协议和server进行通信的一套API

    基本概念是URLSession,一个session实例可以创建多个task,用于get/post/download/upload。
    配置session的config对象可以支持default、ephemeral、background三种模式。

    • default 共享全局证书、缓存、cookie
    • ephemeral 证书、缓存、cookie都是临时的,不落盘
    • background 支持后台任务,退到后台时,任务由系统托管。

    下面官方图片,显示了default合ephemeral的区别。


    image.png

    组成部分

    • URLSession
    • 协议支持(protocol support)
    • 认证和证书(authentication and credentials)
    • cookie 存储(cookie storage)
    • 请求配置(configuration management)
    • 缓存管理(cache management)

    性能指标

    概念

    iOS10之后,苹果推出了NSURLSessionTaskTransactionMetrics类,是由URL Loading System封装的,对task整个执行生命周期的监控。

    组成

    • request
    • response
    • 一些时间指标
    • 协议名
    • resourceType A value that indicates whether the resource was loaded, pushed, or retrieved from the local cache.

    网络性能统计主要是通过监控请求的创建、建立连接、建立安全连接、查找域名、解析域名、请求数据、完成请求数据等各个关键时间节点,来判断哪个部分有瓶颈,进而进行优化。
    Metrics中的时间指标,正是做这个事的。


    image.png

    Metrics把请求分为了6个阶段

    • 任务开始
    • nds解析
    • tcp连接建立
    • ssl建立
    • http请求发起
    • http响应

    这几个阶段中,除了第一个比较特殊,只有开始。其他都是开始/结束对应。当一个阶段开始后,如果阶段没有完成,不管是任何原因,endTime都会为nil。

    一个注意的点:http2,由于支持长连接,它的tcp ssl相关的值都是空。

    相关文章

      网友评论

          本文标题:iOS网络性能指标统计

          本文链接:https://www.haomeiwen.com/subject/umnvahtx.html