我在C ++股票的高频交易客户端工作。我正在使用quickfix / J库从我的经纪人那里接收信息。我需要这两个进程进行通信(一个用Java编写,另一个用C ++编写),并且必须尽可能地减少延迟。
起初我考虑使用FIFO命名管道,但我正在阅读内存映射以及如何通过将文件映射到内存来提高性能。我的问题是......它真的快得多吗?什么是实现这一目标的最佳方法?我应该映射常规文本文件吗?即使使用内存映射,不会使用常规文本文件吗?
提前致谢。
答案 0 :(得分:0)
内存映射非常快,它为您提供了一个机器人进程可以访问的区域。
出现的问题是:流程如何知道数据已发生变化?您可以添加一种随着数据更改而增加的版本号,但是跨进程(信号量)的所有其他锁定,我不相信数据传输会更快。
所以我认为,对于数据传输,与命名管道或队列相比的整体性能不会那么多。