Kaa*_*rde 6 java android http retrofit okhttp3
我需要在Android中使用Retrofit尽可能快地发出50个http GET请求.我正在使用OkHttp进行Retrofit.目前改造正在做的不好VS普通的Java ThreadPoolExecutor和HttpUrlConnection:约50秒的改造和30秒为纯HttpUrlConnection对所有50个请求,如果我设置了池大小20 ThreadPoolExecutor和用于改造/ OkHttp我设置okHttpClient.dispatcher().setMaxRequests(20);.
如果我查看logcat,我可以看到Retrofit最多会执行5个并发请求,无论我设置什么,setMaxRequests()而且ThreadPoolExecutor有可用工作线程的并发请求数量.
有什么办法可以让Retrofit变得更快吗?我不想切换到,HttpUrlConnection因为Retrofit非常优雅且易于使用.
我尝试向ThreadPoolExecutorOkHttp 提供自定义,但没有时间改进:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
ExecutorService exec = new ThreadPoolExecutor(20, 20, 1, TimeUnit.HOURS, new LinkedBlockingQueue<>());
Dispatcher d = new Dispatcher(exec);
builder.dispatcher(d);
OkHttpClient okHttpClient = builder.build();
okHttpClient.dispatcher().setMaxRequests(20);
Run Code Online (Sandbox Code Playgroud)
如果这很重要,我会向同一个端点发出所有请求
既然他们都去了同一个主人,你试过:
okHttpClient.dispatcher().setMaxRequestsPerHost(20);
Run Code Online (Sandbox Code Playgroud)
Dispatcher.setMaxRequestsPerHost
| 归档时间: |
|
| 查看次数: |
2506 次 |
| 最近记录: |