为什么对冰淇淋三明治的SocketInputBuffer做了这个改变?

时间:2012-06-27 16:35:05

标签: android apache

任何人都可以帮助我理解这个“修复”:

https://www.gitorious.org/rowboat/external-apache-http/commit/e30b5b55806b31d1a61e2885b854dd7b8da1a07a

当我正在阅读jpg图像时,它导致我的运动jpeg(mjpg,mjpeg)代码慢下来。修复对我来说似乎很可怕,完全忽略了传递的参数,因此让调用者无法调整值。

有没有办法解决这个变化,以便我可以使用更大的缓冲区大小?

1 个答案:

答案 0 :(得分:2)

来自提交日志:

  

让Apache HttpClient与大型内核套接字缓冲区配合使用。

     

考虑到可能为内核套接字设置的最大大小   在LTE设备上缓冲,我们需要停止Apache HttpClient   在堆上为每个分配该大小的一些整数倍   插座。在一台设备上,16个HTTP连接将填满堆。

这基本上意味着Android不信任LTE设备来设置自己的缓冲区大小,因为它会过快地填满堆。

作为解决方法,请尝试扩展AbstractSessionInputBuffer以创建自己的SocketInputBuffer类版本。