代码之家  ›  专栏  ›  技术社区  ›  Ajaxx

在基于Windows CLR的平台上是否有任何机制可以使用LDMA或RDMA?

  •  3
  • Ajaxx  · 技术社区  · 17 年前

    Windows有Windows Direct,但我还没有看到任何允许.NET应用程序使用它的东西。我还没有看到真正的用于Windows的SDP(套接字直接协议)实现。有人知道有什么办法可以做到这一点吗?

    1 回复  |  直到 17 年前
        1
  •  2
  •   ShuggyCoUk    17 年前

    通过P/Invoke或C++/CLI包装该库。如果你的API是健谈的,并且有状态的C++对象,并且处理语义,那么在C++和CLI中,这将是更容易和更好的。

    然后,您可以在较低的级别上获得完整的RDMA性能,并且当您将一些数据从非托管层复制到托管层时,只会产生与.Net相关的成本(例如,使其更易于操作)。

    如果需要,甚至可以通过为非托管内存中的底层数据提供足够丰富的api来避免这种情况。这将产生一些轻微的托管/非托管转换成本,因此对于一个非常健谈的界面来说是不合适的,但避免这种情况的真正原因是实现起来相当麻烦,因此与将您想要的数据拉到托管世界相比,它肯定不是我的首选。

    我不会想到一个纯粹的托管解决方案能够在没有危险的黑客攻击的情况下与RDMA一起工作(例如利用LOH的非压缩性)。