iOS 从设备日志分析App网络性能
环境准备 Apple Console (控制台程序,MacOS自带) iPhone(iPad等设备也可,不需要越狱) 数据线 iOS App(不需要破解,直接从AppStore安装就可以) 操作步骤 1、通过usb将iPhone手机和Mac电脑连接 2、打开 Apple Console,选中的设备 3、点击开始,可以实时看到设备日志了,然后打开App,运行一段时间。 在日志里面搜索关键字 summary for task,应可以看到对网络性能的统计 字段解析 先摘抄一段日志 16:34:02.523191+0800 MPBBank Task <4C18F624-05B7-427D-AC9D-46C6C69B29C9>.<1> summary for task success {transaction_duration_ms=576, response_status=200, connection=1, protocol="http/1.1", domain_lookup_duration_ms=105, connect_duration_ms=240, secure_connection_duration_ms=167, private_relay=false, request_start_ms=389, request_duration_ms=0, response_start_ms=574, response_duration_ms=1, request_bytes=1629, response_bytes=10056, cache_hit=false} 以上对应 日志时间(16:34:02.523191+0800), 日志发生源的进程(MPBBank,此为招商银行App的进程), 日志信息(Task <6510978A-4EA6-4970-A5A6-1AFBF3B0C0E1>.<1> ….) 主要关注下 日志信息 字段,可以看到其内容为 Task <4C18F624-05B7-427D-AC9D-46C6C69B29C9>.<1> # 任务Id summary for task success # 任务成功统计 { transaction_duration_ms=576, # 传输时长 response_status=200, # 响应码 connection=1, protocol="http/1.1", # 网络协议 domain_lookup_duration_ms=105, # DNS查询时长 connect_duration_ms=240, # 连接时长secure_connection_duration_ms=167, # 安全连接时长 private_relay=false, request_start_ms=389, # 请求开始时刻 request_duration_ms=0, # 请求时长 response_start_ms=574, # 响应开始时刻 response_duration_ms=1, # 响应时长 request_bytes=1629, # 请求报文大小 response_bytes=10056, # 响应报文大小 cache_hit=false # 是否命中缓存 } 基本上从字面意思解释就可以了。 经过反复观察,以上部分数据存在以下关系: transaction_duration_ms = response_start_ms + response_duration_ms,最终计算结果可能会有几毫秒误差。 ...