我有一些看起来像这样的代码:
if mask & selectors.EVENT_WRITE:
if data.connid == receive_target and not wrote:
data.outb = bytearray(1024 * 1024 * 64)
wrote = True
if data.outb:
#print("sending", repr(data.outb), "to connection", data.connid)
sent = sock.send(data.outb) # Should be ready to write
print(sent)
data.outb = data.outb[sent:]
这在具有非阻塞套接字的选择器事件循环中执行。问题在于,这种发送数据的方式需要大量复制(data.outb = data.outb[sent:]),这决定了实际的网络延迟。我想知道 python 中是否有某种字节的循环缓冲区,我可以在其中执行 data.outb = data.outb[sent:] 之类的操作而无需任何复制。