Okhttp优点总结

3,000 阅读2分钟

连接池

但是OkHttp实现了连接池的概念,即对于同一主机的多个请求,其实可以公用一个Socket连接,而不是每次发送完HTTP请求就关闭底层的Socket,这样就实现了连接池的概念。

线程池怎么复用

线程池的线程复用:就是任务在并不只执行创建时指定的firstTask第一任务,还会从任务队列的中自己主动取任务执行,而且是有/无时间限定的阻塞等待,保证线程的存活。

DNS

okhttp提供了自定义DNS解析的接口。

OKIO

Okio核心竞争力为,增强了流于流之间的互动,使得当数据从一个缓冲区移动到另一个缓冲区时,可以不经过copy能达到。

1 速度快

  • okio采用了segment机制进行内存共享,极大减少copy操作带来的时间消耗,加快了读写速度
  • okio引入ByteString使其在byte[]与String之间转换速度非常快(ByteString内部以两种变量记录了同个数据byte[] data; transient String utf8;),空间换时间

2 稳定

  • okio提供了超时机制,不仅在IO操作上加上超时的判定,包括close,flush之类的方法中都有超时机制

3 内存消耗小

  • 虽然okio在byteString采用空间换时间,但是对内存也做极致优化,总体还是极大提高了性能
  • okio的segement机制进行内存复用,上传大文件时完全不用考虑OOM

Http2

Android网络面试总结

GZip

  • http2.0协议本身对头部有压缩。对于body的压缩okhttp提供了Gzip压缩的支持。

参考