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