并提高.进程间牺牲性能来实现可移植性
Does Boost.Interprocess sacrifice performance to achieve portability
我刚刚读了这一页的Boost。进程间文档。这似乎表明,为了适应不同操作系统之间的差异并达成某种一致,某些进程间机制不是用操作系统提供的直接对应的本机机制来实现的,而是使用其他机制来模拟。我想知道这是否会对性能造成相当大的影响。
那一页的最后一节特别与我有关,下面引用
由于每种机制都可以通过不同的机制(a信号量可以使用映射文件或本机信号量来实现)的实现时,权限类型可能会有所不同资源变化(例如:: Windows互斥锁需要同步权限,但这与文件不同)。为了避免这种情况,提振。进程间依赖于类似文件的权限,需要文件打开命名同步机制的读写删除权限(互斥锁,信号量等)和适当的读或读-写-删除共享内存的权限。这种方法有两个优点类似于UNIX哲学,程序员不需要这样做知道命名资源是如何实现的
基于这篇文章,我猜大多数内核对象由Windows提供的本地进程间同步(例如,事件,互斥,信号量)只是不被Boost.Interprocess使用。
我以前见过使用本机内核对象。
当我阅读它时,消息只谈到权限。它提到,这是在底层对象具有不同访问控制的情况下模拟的。它实际上并没有提到它是如何被模拟的
相关文章:
- 了解算法的性能差异(如果以不同的编程语言实现)
- C++分离功能,实现性能优化
- 为什么 C++ 代码实现的性能不比 python 实现更好?
- 为什么用于阈值矩阵元素的 Matlab 逻辑索引操作在性能上优于 mex 实现?
- 将函数及其实现移动到与主文件不同的文件(.hpp 和 .cpp)时,性能会受到很大影响
- 为什么这个普通的数组实现比STD ::向量实现性能慢
- 具有良好性能的c++映射实现
- Google Protobuf基于C++的python实现的性能
- 考虑 CPU 提升模式的多线程超线性性能实现
- 什么是通过调用_mm_stream_si64x()实现性能提升的示例程序
- 在 C++98 中实现移动构造函数和移动赋值运算符以获得更好的性能
- 性能不佳基于OpenCL的OpenCV平方实现
- 快速容器,实现一致的性能
- 并提高.进程间牺牲性能来实现可移植性
- 在c++中实现长方程时,如何通过高级方法提高性能?< / h1 >
- c++性能技术报告TR 18015中使用了哪些实现
- 并行线程执行以实现性能
- R stats::sd()与arma::stddev()与Rcpp实现的性能
- Dijkstra算法实现的性能
- c++仅用一行代码就实现了巨大的性能差异