在64位linux上,我的应用程序发送二进制消息,这些消息是可变大小的,而不是在64位边界上对齐。例如,它可以发送1026字节,85字节等等。在这种情况下,页面对齐套接字发送和接收缓冲区大小是否有帮助或有害或无关紧要? 该应用程序用c语言编写,并在rq 6.3x上运行,内核为2.6.32.x86_64。
更新:
通过缓冲区,我最初的意思是SO_SNDBUF和SO_RCVBUF,由setsockopt设置。但根据David的评论,我想包括在PAGESIZE边界创建用于发送和recv调用的应用程序缓冲区的可能性。这有帮助,伤害还是无关紧要?
答案 0 :(得分:1)
出于所有应用目的,它无关紧要:
另一方面,如果你从说文件到套接字执行大量缓冲操作,请查看sendfile(2)
和splice(2)
,这在您的应用程序上下文中可能有意义,也可能没有意义。