![]() |
2
6
共享内存 在内核和使用空间之间是可行的。 http://kerneltrap.org/node/14326 有关说明/示例。 命名管道 这些都很快。 这一切都要看情况而定 关于您共享的数据,它是并发访问的,数据的结构是什么样的。对于简单的数据,调用可能就足够了。 可能也有帮助 祝你好运 |
![]() |
3
5
你也可以考虑继电器(以前继电器): “基本上,relayfs只是一组可以从内核代码高效写入的每cpu内核缓冲区。这些缓冲区表示为文件,可以在用户空间中对其进行mmap并直接读取。此设置的目的是提供最简单的机制,允许在内核中记录潜在的大量数据并“中继”到用户空间。” |
![]() |
4
2
很明显,你可以通过复制用户的文件来共享内存,你可以很容易地设置一个字符设备驱动程序,基本上你所要做的就是创建一个文件操作结构,但这并不是最快的方法。 我没有基准,但是moderns系统上的系统调用应该是最快的。我的理由是,这是最适合的。过去是从用户处获取->内核一号必须创建一个中断,然后进入中断表(一个数组),然后找到中断句柄(0x80),然后进入内核模式。这非常慢,然后是.sysenter指令,这基本上使这个过程非常快。没有详细说明,.sysenter立即读取一个寄存器CS:EIP,并且更改非常快。 相反,共享内存需要对内存进行写入和读取,这比从寄存器读取要昂贵得多。 |
![]() |
5
1
下面是所有可能接口的可能编译,尽管在某些方面它们彼此重叠(例如,套接字和系统调用都有效地使用系统调用):
|
![]() |
6
1
大约比syscall慢2倍,if(不是在一个套接字上)大约快5倍 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 3 月前 |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 4 月前 |
![]() |
Marco · PyCharm Linux系统文件上os.stat异常 5 月前 |