C++与C#的内存映射
来源:互联网 发布:游戏币充值软件 编辑:程序博客网 时间:2024/06/17 12:24
这几天试验了一下内存映射的效率,主要参考了网上的几篇资料
C# : http://blog.csdn.net/linux7985/article/details/5853358
C++:http://blog.csdn.net/believefym/article/details/1162461
根据第一篇文章的代码,封装了一个类ShareMemory,C#和C++各一份,方便进行内存映射
很奇怪的是C#的运行速度要比C++快很多!
在封装类的时候:
C# 中的Marshal.Copy( m_pwData, bytData, lngAddr, lngSize ); 内存拷贝这个功能,
对应C++中用的是memcpy。
C++耗时间的操作主要在memcpy,将映射得到的内存拷贝到一个new出来的BYTE动态数组中
好像memcpy 拷贝 堆分配的内存 的速度比Marshal.Copy要慢一些?
试图不用memcpy,直接sscanf读映射出来的内存,又报错,郁闷了。看来必须要memcpy
最后还是放弃了用C++,采用了C#。
据说.net 4.0新增加了内存映射的功能,以后有空试一试
- C++与C#的内存映射
- cache与内存的映射
- 用C#实现的内存映射
- 内存映射文件 C#
- Linux C下的内存映射函数
- DM8168的互连与内存映射
- DM8168的互连与内存映射
- DM8168的互连与内存映射
- DM8168的互连与内存映射
- DM8168的互连与内存映射
- 与内存映射相关的宏
- linux的内存物理地址与映射地址
- DM8168的互连与内存映射
- 物理内存与虚拟内存之间的映射
- 物理内存与虚拟内存之间的映射
- C语言 mmap()函数(建立内存映射) 与 munmap()函数(解除内存映射)
- c++与c#之间的映射
- 内存映射与DMA
- php 时间处理(昨天 上个月 本月 最近7天)
- UIPageViewController 实现从中间翻页效果
- Play!
- IOS系列——添加image图片和对图片添加事件响应
- linux 启用root用户登录,启用root帐号和登录权限
- C++与C#的内存映射
- UVa 621 Secret Research (water ver.)
- Java中&和&&
- 为何“返回”按钮总是不显示
- VS2012关闭单击文件进行预览的功能
- poj-2406 kmp中的next数组应用
- 生产者 消费者 (wait notify)
- 针对PreferenceScreen的主题设置
- JS实现页面下拉动态加载