我需要频繁地将数据从C++传递到C#。它应该是尽可能快因为我正在写超低延迟交易应用程序。将数据从C++传递到C# - 映射文件与CLI + UnmanagedMemoryStream
我有纯粹的C++项目(稍后将移植到Linux)。我需要从它传递数据到我的C#项目。我总是需要通过相同的结构(如果这很重要)。
结构看起来像这样:北京时间= “MSFT” 价格= “30” 体积= “10” 侧= “买入”
我想象两个选项:
- 写C++ - CLI包装物将通过UnmanagedMemoryStream从C++到C#
- 使用内存映射文件
会是什么:
-
更快
- 更容易实现
- 更容易移植到Linux ?
C++和C#代码最终在两个独立的进程中,或在同一个进程?即您是否需要在不同进程之间传输数据,或者通过同一进程内的托管/非托管边界传输数据? '移植到Linux'=使用单声道的C#部分? – MiMo 2013-02-16 20:42:26
是的,这非常重要。我正在假设单独的进程。 – 2013-02-16 20:46:09
这是同一个项目,是的,我认为它可能是相同的过程。移植到Linux很可能会将其余的C#代码重写为C++。然而,单声道也是可能的...并且将我当前的库作为“独立”应用程序可能很酷(如果不会显着影响延迟)。在几个其他进程之间共享'Ticker =“MSFT”Price =“30”Volume =“10”Side =“Buy”'''''所以需求是模糊的,但延迟肯定是最重要的部分!不过,我同意放松1-10微秒,以便拥有一些很酷的功能,例如将数据共享到其他几个进程。 – javapowered 2013-02-16 20:54:48