小编jz1*_*jz1的帖子

如何有效地从 TcpStream 读取小部分?

我正在编写一个应用程序,它将通过 TCP 连接与另一个服务进行通信。

从性能角度来看,我是一次性从所有数据中提取数据TcpStream还是一次读取各个部分的性能是否重要?比较:

fn read_byte_by_byte() {
    let mut stream = TcpStream::connect("localhost:3001").unwrap();

    let mut endian = [0; 1];
    let mut protocol = [0; 1];
    let mut msg_length = [0; 4];

    stream.read(&mut endian).unwrap();
    stream.read(&mut protocol).unwrap();
    stream.read(&mut [0; 2]).unwrap(); // throw away two padding bytes
    stream.read(&mut msg_length).unwrap();
}
Run Code Online (Sandbox Code Playgroud)
fn read_in_bulk() {
    let mut stream = TcpStream::connect("localhost:3001").unwrap();

    let mut full_msg = [0; 8];
    stream.read(&mut full_msg).unwrap();
}
Run Code Online (Sandbox Code Playgroud)

它们相等吗?或者前者的表现会更差?

performance tcp rust

4
推荐指数
1
解决办法
3361
查看次数

标签 统计

performance ×1

rust ×1

tcp ×1