- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够在基于 Windows CLR 的应用程序 (.NET) 上使用 LDMA 或 RDMA。我有使用 C++ 开发的低延迟应用程序,这些应用程序将使用 LDMA 或 RDMA 接收它们的数据。我希望我们的 CLR 应用程序使用相同的 API,但我知道这可能会影响性能。
Windows 有 Windows Direct,但我还没有看到任何允许 .NET 应用程序使用它的东西。我还没有看到 Windows 的真正 SDP(套接字直接协议(protocol))实现。任何人都知道有什么方法可以做到这一点?
最佳答案
如果您可以混合托管和非托管代码,则使您的 RDMA 实现成为一个库(最好是在 C++ 中),它可以执行所有自己的内存管理。
通过 P/Invoke 或 C++/CLI 包装该库。如果您的 api 很健谈,并且具有带有处置语义的有状态 C++ 对象,那么这在 C++/CLI 中会更容易和更好。
然后,您将在低级别获得完整的 RDMA 性能,并且当您将一些数据从非托管层复制到托管层时,唯一的 .Net 相关成本就会产生(比如使其更易于操作)。
即使您愿意,也可以通过为非托管内存中的底层数据提供足够丰富的 API 来避免这种情况。这将产生一些轻微的托管/非托管转换成本,因此对于一个非常健谈的界面来说是不合适的,但避免这种情况的真正原因是实现起来相当麻烦,所以与仅提取数据相比,它肯定不是我的第一选择你想要进入托管世界。
如果没有危险的黑客攻击(例如,利用未压缩的 LOH),我不会想到纯托管解决方案会与 RDMA 一起工作。
关于c# - 是否有任何机制可用于在基于 Windows CLR 的平台上使用 LDMA 或 RDMA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349849/
我希望能够在基于 Windows CLR 的应用程序 (.NET) 上使用 LDMA 或 RDMA。我有使用 C++ 开发的低延迟应用程序,这些应用程序将使用 LDMA 或 RDMA 接收它们的数据。
我是一名优秀的程序员,十分优秀!