Dan*_*ano 7 java webserver android nio bytebuffer
我正在为java中基于移动设备的设备编写一个Web服务器.
这个网络服务器是单线程的,遵循nginx,node.js和类似的背后的想法:不产生多个线程只是在事件循环中使用异步操作.
虽然使用多线程网络服务器可能会在x86最近的cpu上提供更好的性能,但基于arm的单核cpu将需要做更多的工作.
为了澄清,我非常清楚C和我在C#中实现普通c或多线程的单线程Web服务器,利用Windows上的IOPS,但我在java中只编写了一个简单的web服务器,我想要替换它用这个新的.
现在,我正在使用java nio,并且我已经知道ByteBuffer在转换为字符串时非常慢但是这不是问题,因为我不需要做,事实上gaix maximium表演我想实现解析和比较字节级别.
我的问题是,解析字节缓冲区的方法更快?
我已经看到ByteBuffer支持get方法,它允许访问单个字节并向前移动光标,支持数组方法,返回支持数组,所以我的问题是哪种方法更快?
我可以直接在支持的数组上工作,或者我应该避免和使用get?
我想实现一个ByteBufferPool来重用bytebuffer,我会让线程知道它,在下面阅读,这可能是一个问题吗?
在某些情况下,我将比较字节到字节,应用掩码来处理区分大小写(我的意思是,如果第一个字节是G,第三个是T,第四个是空格(0x47,0x54和0x20)我可以处理请求作为一个GET)和其他情况下我需要比较字符串和字节数组,比如标题(我将循环通过字符串字符,将它们转换为字节并与字节进行比较).
对不起这些愚蠢的问题,但我不知道java规格,不知道内部java的东西,所以我需要信息:)
有人可以暗示一下吗?:)
PS:很明显,并非所有操作都可以以do-stuff-pause-continue-return方式处理,所以我将实现一个ThreadPool以避免线程创建惩罚
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |