我只是想问一些我认为合乎逻辑的问题,但我似乎无法在互联网上找到明确的证据来支持它。
只是为该协议解析消息的方式的基础。读取套接字缓冲区,直到\n
满足,然后将消息分派给消息处理程序。
现在考虑到这一点,这将更有效率。
Method A)
1) read 1 byte from from socket buffer
2) check to see if byte is a newline
3) if it is not append to the array if it is send array to message handler and clear array
4) repeat until connection closed
或者
Method B)
1) read multi bytes from socket buffer as one chunk
2) search the array for a newline
3) if newline is found, send the beginning of the array up to the newline to message handler, then remove it from the array shifting remaining data down.
4) repeat until connection closed
如果语言在这方面发挥作用,它将在 ruby 中使用其字符串函数进行搜索等。
我认为方法 B 会更快,因为它正在读取更多数据,但是字符串搜索再次提供了方法 A 的额外步骤。
哪个会更快?