某些流媒体服务器需要对HTTP Chunked编码数据流进行并发解析,朴素静态解析算法难以应用于高效灵活的事件驱动并发模型,且会造成长延迟和多次数据拷贝,导致内存和计算资源开销都较高.针对上述问题,提出一种基于有限状态机的解析策略.将一次接收和一次解析操作构成一个任务片,从而适应事件驱动模型,对收到的数据包进行即时处理和释放,不需要缓存整个HTTP报文,减少一次内存拷贝开销.在数据处理过程中,通过有限状态机保存解析状态,能够在任务片退出后恢复之前的解析状态,从而解决事件驱动模型下的字段断裂问题.实验结果表明,相比于静态解析算法,该策略能够明显地降低解析过程的处理时间和占用的内存.
流媒体 HTTP Chunked编码 并发解析 事件驱动模型 有限状态机 内存拷贝