排球网络并行请求

时间:2019-06-17 15:23:34

标签: android android-volley

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

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

我的问题是CPU使用率变得疯狂,尽管我知道凌空有一个请求队列,并且它只能在默认时间DEFAULT_NETWORK_THREAD_POOL_SIZE = 4的同时处理4个请求。

有人知道为什么会发生这种开销吗,是由于齐射缓存或将文件写入设备的方法造成的?

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

private void writeAudioFile(byte[] arrayByte, String name) throws 
                  IOException {
     FileOutputStream outputStream = new FileOutputStream(name);
     outputStream.write(arrayByte);
     outputStream.close();
}

1 个答案:

答案 0 :(得分:0)

一段时间内不断存储的写入文件使CPU​​很难工作。同样在线程数少的设备中,它也会崩溃。

我建议您使用较少数量的线程,仅使用1或2个线程,以便让CPU执行其他任务并避免性能下降。

DEFAULT_NETWORK_THREAD_POOL_SIZE = 2