测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最新发布 | 2017 年 4 月 |
SwiftSwift 版本 | 3.1 |
SPM支持 SPM | ✓ |
由 Johan Sørensen 维护。
将 URLSession 任务的详细指标记录到控制台,例如 DNS 查询持续时间、请求和响应时间等。Tumbleweed 通过解析 iOS 10.0 中引入的 URLSessionTaskMetrics
收集的指标来工作。
Task ID: 1 lifetime: 594.9ms redirects: 0
GET https://github.com/ -> 200 text/html, through network-load
protocol: http/1.1 proxy: false reusedconn: false
domain lookup |# | 3.0ms
connect |############################################### | 330.0ms
secure connection | ################################ | 223.0ms
request | # | 0.2ms
server | ################### | 130.9ms
response | ###############| 105.8ms
total 575.0ms
关于数据的几点注意
注意 并非所有响应都会提供完整的指标,例如本地缓存获取和其他非网络加载响应。
在您的 URLSessionDelegate
中
func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
let stats = SessionMetrics(source: metrics, task: task)
let renderer = ConsoleRenderer()
renderer.render(with: stats)
}
为了方便,Tumbleweed 提供了 SessionMetricsLogger
,可以将它设置为 URLSession
的 URLSessionDelegate
,如果您没有使用其他任何委托。
let sessionDelegate: URLSessionDelegate?
if #available(iOS 10.0, *) {
sessionDelegate = SessionMetricsLogger()
} else {
sessionDelegate = nil
}
let session = URLSession(configuration: .default, delegate: sessionDelegate, delegateQueue: nil)
Tumbleweed 以 CocoaPod(《pod 'Tumbleweed'》)和 Swift Package Manager 的形式提供。框架安装也可以通过将 Tumbleweed.xcodeproj 拖入您的项目或通过 Carthage 完成。
Tumbleweed 除了 Foundation 外没有其他依赖。
见 LICENSE 文件