改用 virtual io stack来取代virtual thread以后,整体性能提升不少,毕竟virtual thread在调度过程中带来不少的开销,每次访问外部函数时都会带来额外的内存复制操作。
不过vis远没有使用virtual thread方式处理io来得方便。回调函数的过多使用导致代码结构复杂。另外将来和第三方系统的集成可能会有麻烦。至少openssl就没有在顶层支持异步方式的使用。
新的设计考虑将操作上下文从io操作数据中分离出来,这样可以解决每个操作回调函数中对上一次io操作数据问题,从而使每个vis使用一个普通的堆栈来实现,减少动态内存的请求次数。
目前这个设计还没有解决的问题是如何在回调函数中方便的获取上下文数据
不过vis远没有使用virtual thread方式处理io来得方便。回调函数的过多使用导致代码结构复杂。另外将来和第三方系统的集成可能会有麻烦。至少openssl就没有在顶层支持异步方式的使用。
新的设计考虑将操作上下文从io操作数据中分离出来,这样可以解决每个操作回调函数中对上一次io操作数据问题,从而使每个vis使用一个普通的堆栈来实现,减少动态内存的请求次数。
目前这个设计还没有解决的问题是如何在回调函数中方便的获取上下文数据