跨编译器共享内存?

时间:2010-09-07 09:56:53

标签: c++ c

我必须首先说我对这个话题一无所知,所以如果我显得无知,那就要幽默。

由于必须在g ++编译的程序中使用vc ++库的问题,我构建了一个本地服务器 - 客户端系统,其中服务器在vc ++中编译,客户端在g ++中,它们通过套接字进行交互。在套接字上发生了大量的数据传输(22个字段中每个接近2,00,000条记录),这是一个主要的瓶颈,并使整个过程变得很慢。有没有我可以在服务器和客户端进程之间有一种共享内存,以便访问速度更快?

2 个答案:

答案 0 :(得分:2)

我假设你在Windows系统上使用它? (你不说。)因为它是本地客户端服务器,你还有其他选择。

对于大量数据的Windows跨进程通信,我认为你应该考虑使用内存映射文件。这些可以使用全局内存句柄共享。然后使用共享内核对象进行同步(互斥,我建议或事件),您可以控制访问以确保以安全的方式完成。

如果它始终是本地的,那可能是您最快最安全的方法。

(我会给你更具体的API信息,但昨天我把书拿回家作为办公室的一部分清理 - 抱歉!)

答案 1 :(得分:1)

如果他们在同一台PC上,那么是的,共享内存更快,并且在不同的程序中无法正常工作。

如果它在不同的PC上,那么也是,但它不会比插座更快。