首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows 7上最快的IPC方法

Windows 7上最快的IPC方法
EN

Stack Overflow用户
提问于 2011-08-20 04:48:30
回答 1查看 30.5K关注 0票数 40

在Windows 7上,最快的进程间通信(IPC)方法是什么?我们只想共享一个内存块(双向)。

ReadProcessMemory还是别的什么?我们想使用普通的C,但是,例如,Boost库在IPC中使用什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-20 04:56:00

ReadProcessMemory甚至不应该被列为进程间通信方法;是的,它可以这样使用,但它的存在主要是为了调试目的(如果查看它的引用,它位于“调试函数”类别下),而且它肯定比“真正的”共享内存慢,因为它将进程的内存复制到指定的缓冲区中,而真正的共享内存没有这种开销。

Windows方法的完整列表可以在on the MSDN中找到;不过,如果您只有两个应用程序想要共享一个内存块,那么您应该使用CreateFileMapping/MapViewOfFile创建一个命名的内存映射文件(由分页文件支持),这应该是最简单、最快的方法。有关文件映射的详细信息,请参阅MSDN上的its page

relevant Boost IPC classes可以充当共享内存的薄包装器,它只封装了对相关系统特定API的调用,但最终您将获得指向共享内存块的常用指针,因此操作应该与使用本机API一样快。

正因为如此,我建议你使用Boost.Interprocess,因为它是可移植的,对C++友好的(它提供了RAII语义),并且在创建共享内存块后不会给你带来任何性能损失(它可以提供关于共享内存的额外功能,但它们都是可选的-如果你只是想要共享内存,你就会得到它)。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7127242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档