android - 为什么要对 Ice Cream Sandwich 的 SocketInputBuffer 进行此更改?

标签 android apache

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

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

当我读取 jpg 图像时,它导致我的运动 jpeg(mjpg、mjpeg)代码速度减慢。这个修复对我来说似乎很糟糕,完全忽略了传递的参数,因此调用者没有机会调整值。

是否有办法解决此更改,以便我可以使用更大的缓冲区大小?

最佳答案

来自提交日志:

Make Apache HttpClient play nice with large kernel socket buffers.

Given the large maximum size likely to be set for kernel socket buffers on LTE devices, we need to stop Apache HttpClient from allocating some integer multiple of that size on the heap for each socket. On one device, 16 HTTP connections would fill the heap.

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

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

关于android - 为什么要对 Ice Cream Sandwich 的 SocketInputBuffer 进行此更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231029/

相关文章:

android - 使用 MvvmCross 将 byte[] 绑定(bind)到 Android 上的 ImageView

java - 无法使用我的设备运行我的应用程序

WSL2 中的 Apache 不像 localhost 那样工作

Perl Apache : Perl script displayed as plain text

Android ndk找不到符号 "sigemptyset"

javascript - 从手机发送文件到 Node js 服务器

apache - 要使用 ServiceMix,我的项目必须是 OSGi 包吗?

php - .htaccess 将我的索引更改为相关页面

基于 PHP 类 OOP 的 Apache Mod 重写系统(固定链接 - 友好的 URL)

Android 应用程序崩溃 okhttp3 HTTP FAILED : javax.net.ssl.SSLException : Read error: I/O error during system call, 软件导致连接中止