支持散点式IO操作

我想通过Go中的Unix域套接字开发高性能的客户端-服务器通信协议。 具体来说,我正在考虑采用Vector-IO操作(writev / readv系统调用),以避免结构化数据序列化的开销。 但是,我认为Go不能完全支持使用分散收集io操作。 我发现有一些尝试为writev操作提供Go支持,但没有为readv提供支持。 有没有一种方法可以在Go中实现,并且/或者在性能上又有什么选择呢?</ p>
</ div>

展开原文

原文

I want to develop a high-performance client-server communication protocol over Unix Domain Sockets in Go. Specifically, I was thinking of employing Vector-IO operations (writev/readv system calls) in order to avoid the overhead of structured data serialization. However, I think Go doesn't fully support the use of scatter-gather io operations. I have found some attempts in providing Go support for writev operations but not readv. Is there a way to implement this in Go and/or what would the alternative be performance-wise?

io

1个回答



使用 net.Buffers 用于使用 writev </ code>或类似方法进行优化的批量写入。</ p>

要进行读取,请将数据吸附到单个缓冲区中并根据需要切片缓冲区。</ p>
</ div>

展开原文

原文

Use net.Buffers for optimized batch write using writev or similar.

For read, slurp the data up into a single buffer and slice the buffer as needed.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐