Java/Android-快速ByteBuffer解析

Java/Android-快速ByteBuffer解析,java,android,webserver,nio,bytebuffer,Java,Android,Webserver,Nio,Bytebuffer,我正在用java为基于android的移动设备编写一个Web服务器 这个Web服务器是单线程的,遵循nginx、node.js和类似的思想:不要产生多个线程,只在事件循环中使用异步操作 虽然在x86最新cpu上使用多线程Web服务器可能会提供更好的性能,但在基于arm的单核cpu上需要做更多的工作 为了澄清这一点,我对C非常了解,我已经在普通C中实现了单线程Web服务器,或者在C#中实现了多线程Web服务器,利用了windows上的IOPS,但我只用java编写了一个简单的Web服务器,我想用这

我正在用java为基于android的移动设备编写一个Web服务器

这个Web服务器是单线程的,遵循nginx、node.js和类似的思想:不要产生多个线程,只在事件循环中使用异步操作

虽然在x86最新cpu上使用多线程Web服务器可能会提供更好的性能,但在基于arm的单核cpu上需要做更多的工作

为了澄清这一点,我对C非常了解,我已经在普通C中实现了单线程Web服务器,或者在C#中实现了多线程Web服务器,利用了windows上的IOPS,但我只用java编写了一个简单的Web服务器,我想用这个新的Web服务器替换它

现在,我正在使用java nio,我已经读到ByteBuffer在转换为字符串时非常慢,但这不是一个问题,因为我不需要这样做,事实上,对于gaix maximium性能,我想在字节级别实现解析和比较

我的问题是,哪种解析字节缓冲区的方法更快

我已经看到ByteBuffer支持get方法,该方法允许访问单个字节并向前移动光标,支持array方法,返回backing数组,所以我的问题是哪个方法更快

我可以直接在备份阵列上工作,或者我应该避免使用get

我想实现一个ByteBufferPool来重用bytebuffer,我会让线程意识到它,如下所述,这会是一个问题吗

在某些情况下,我将逐字节比较,应用掩码来处理大小写敏感度(我的意思是,如果第一个字节是G,第三个是T,第四个是空格(0x47、0x54和0x20),我可以将请求视为GET一个),在其他情况下,我需要将字符串与字节数组进行比较,比如头部(我将循环字符串字符,将它们转换为字节并与字节进行比较)

很抱歉提出这些愚蠢的问题,但我不知道java规范,也不知道java内部的东西,所以我需要信息:)

有人能给个提示吗?:)

PS:显然,并不是所有的操作都可以用do-stuff-pause-continue返回的方式来处理,所以我将实现一个线程池来避免线程创建的惩罚。 您可以控制线程模型,并且可以实现所需的功能