首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Volley网络并行请求

Volley网络并行请求
EN

Stack Overflow用户
提问于 2019-06-17 23:23:35
回答 1查看 68关注 0票数 0

我正在使用volley从我可以访问的云中下载字节数组数据。

我的实现有时会在一个for循环中执行大约200个请求,以获取200个数组(文件的平均大小为700KB,少数文件的大小高达1MB),并将它们存储在设备中。

我的问题是CPU使用率变得很高,尽管我知道volley有一个请求队列,并且它在缺省值DEFAULT_NETWORK_THREAD_POOL_SIZE = 4的同时只处理4个请求。

有人知道为什么会发生这种开销吗?是因为volley的缓存,还是因为在设备上写入文件的方法?

这是我用来将文件保存到设备上的代码

代码语言:javascript
复制
private void writeAudioFile(byte[] arrayByte, String name) throws 
                  IOException {
     FileOutputStream outputStream = new FileOutputStream(name);
     outputStream.write(arrayByte);
     outputStream.close();
}
EN

回答 1

Stack Overflow用户

发布于 2019-06-18 00:36:04

在一段时间内不断地存储写入文件,使得CPU工作起来非常困难。同样,在线程数量较少的设备中,它也会崩溃。

我建议您使用较少的线程数量,只使用1到2个线程,这样您就可以让CPU执行其他任务,从而避免性能不佳。

DEFAULT_NETWORK_THREAD_POOL_SIZE = 2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56634355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档