ppgjx 发表于 2022-4-5 15:34

OkHttpClient 可以复用吗

OkHttpClient 可以复用吗?我想把 OkHttpClient做成单例,会有什么影响吗,因为我看如果每次请求都要new OkHttpClient 会不会浪费资源

lwqldsyzx 发表于 2022-4-5 15:47

可以,不复用迟早会OOM

unmask 发表于 2022-4-5 15:56

想法非常好,它是能做成单例的,最好是异步调用,能提高效率,具体可以参照下面的文章。
https://blog.csdn.net/sinat_36553913/article/details/104054028

萋小磊 发表于 2022-4-6 02:35

lwqldsyzx 发表于 2022-4-5 15:47
可以,不复用迟早会OOM

emmmm 不懂可以不用乱说的

lwqldsyzx 发表于 2022-4-6 06:46

本帖最后由 lwqldsyzx 于 2022-4-6 06:49 编辑

萋小磊 发表于 2022-4-6 02:35
emmmm 不懂可以不用乱说的
不复用一直创建新对象不占内存吗

萋小磊 发表于 2022-4-13 00:27

lwqldsyzx 发表于 2022-4-6 06:46
不复用一直创建新对象不占内存吗

Java是有Gc的

lwqldsyzx 发表于 2022-4-13 19:07

萋小磊 发表于 2022-4-13 00:27
Java是有Gc的

为什么使用okhttp会导致OOM这个结论:
(1)创建了多个OkHttpClient,即便你使用okHttpClient的newBuilder方法,但是每次OkHttpClient都是new出来的,依旧会创建多个线程池,依旧会导致OOM。
(2)你的其它地方存在内存泄漏的情况或者内存已经接近爆满了,这时候你使用okhttp请求网络,导致这是压死骆驼的最后一根稻草,但是这种情况肯定不会很频繁。

jamescookers988 发表于 2022-6-20 00:29

lwqldsyzx 发表于 2022-4-13 19:07
为什么使用okhttp会导致OOM这个结论:
(1)创建了多个OkHttpClient,即便你使用okHttpClient的newBuild ...

这只是理论上,实际有poc或者code之类的吗?{:1_893:}
页: [1]
查看完整版本: OkHttpClient 可以复用吗