Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
谁能帮我理解这个“修复”:
https://www.gitorious.org/rowboat/external-apache-http/commit/e30b5b55806b31d1a61e2885b854dd7b8da1a07a
当我阅读 jpg 图像时,它导致我的运动 jpeg (mjpg, mjpeg) 代码变慢。修复对我来说似乎很可怕,完全忽略了传递的参数,因此调用者没有机会调整值。
有没有办法解决这个变化,以便我可以使用更大的缓冲区大小?
从提交日志:
使 Apache HttpClient 与大型内核套接字缓冲区配合得很好。 考虑到可能为 LTE 设备上的内核套接字缓冲区设置的最大大小,我们需要阻止 Apache HttpClient 在堆上为每个套接字分配该大小的整数倍。在一台设备上,16 个 HTTP 连接将填满堆。
使 Apache HttpClient 与大型内核套接字缓冲区配合得很好。
考虑到可能为 LTE 设备上的内核套接字缓冲区设置的最大大小,我们需要阻止 Apache HttpClient 在堆上为每个套接字分配该大小的整数倍。在一台设备上,16 个 HTTP 连接将填满堆。
这基本上意味着 Android 不信任 LTE 设备来设置自己的缓冲区大小,因为它会过快地填满堆。
作为一种解决方法,请尝试扩展AbstractSessionInputBuffer以创建您自己的SocketInputBuffer类版本。
AbstractSessionInputBuffer
SocketInputBuffer