底层的读取数据作为一个单独的进程,上层的数据处理作为另外的一个单独的进程,而顶层的数据应用有可能又是一个单独的进程。
因为之间有大数据量的传递,所以内存的申请,维护,释放是一个必须考虑的问题。我如果将这些模块分成COM对象来处理的话是可行的。也可以做到进程间数组数据的通信和交互。但是COM的进程外通信采用的PROXY/STUB DLL来进行数据的列集和散集。据我所知在进行数据传递的时候,本质上COM组件端和客户端的内存申请和释放一般都由组件端申请和客户端释放。表面上是这样,但实际是在COM的散集过程中,已经将保存数据的内存销毁,而在客户端的Proxy的列集过程中重新申请了内存并存放数据。
也就是说这中间其实进行了内存的拷贝和释放。针对大数据量来说这样就不合理了,可不可以在COM中不使用内存拷贝的方式,而采用共享内存的方式来进行数据的传递呢?
请各位指教.Ths
因为之间有大数据量的传递,所以内存的申请,维护,释放是一个必须考虑的问题。我如果将这些模块分成COM对象来处理的话是可行的。也可以做到进程间数组数据的通信和交互。但是COM的进程外通信采用的PROXY/STUB DLL来进行数据的列集和散集。据我所知在进行数据传递的时候,本质上COM组件端和客户端的内存申请和释放一般都由组件端申请和客户端释放。表面上是这样,但实际是在COM的散集过程中,已经将保存数据的内存销毁,而在客户端的Proxy的列集过程中重新申请了内存并存放数据。
也就是说这中间其实进行了内存的拷贝和释放。针对大数据量来说这样就不合理了,可不可以在COM中不使用内存拷贝的方式,而采用共享内存的方式来进行数据的传递呢?
请各位指教.Ths
解决方案 »
- 不用CFileDialog怎么打开文件
- 仅有60分求教百思不得其解的问题!!!!
- 求教高手:图像畸变和涟漪等效果的算法?
- 重载文档类的OnOpenDocument后,出现一奇怪问题
- 右键菜单问题
- 服务端在接 OnAccept里new一个新的socket,那这个心的socket何时能delete呢?
- 高分求winxp的全套控件,小弟感激不尽
- 为什么无法删除表?谁来帮帮我
- 当vc一个project中存在的.h文件编译是却fatal error C1083: Cannot open include file: 'GASimple.h': No such file or director
- QueryPerformanceCounter的问题
- 清高手帮忙解答一下.
- ToolBar的问题!
当然如果不用多进程,改用多线程的话最容易解决
如果是需要进程间的共享内存有哪些方式?我所知道的只有CreateMapFile,具体怎么用我也不清楚。能给讲一下吗?或者给我个例子。谢谢!
http://blog.csdn.net/zzz3265/archive/2008/09/23/2966756.aspx
#pragma data_seg("Shared")
// 这里定义的数据就是进程间共享的,定义数据时必须初始化。
#pragma data_seg()
#pragma comment(linker, "/section:Shared,RWS")