关于mongodb3.4的内存困惑 10C

hi,大家好,有个问题想请教下大家,我们最近将mongodb从2.2.2版本升级到了3.4.6版本,用的是WiredTiger引擎,运行一段时间后,发现几个不是很能理解的问题。
图片说明
数据总大小(包括local里的oplog数据20G左右)
但是通过top查看内存情况,达到了104G
图片说明
疑问1:为什么实际使用内存比存储内存大那么多?
疑问2:我设置了启动参数wiredTigerCacheSizeGB=100,但是现在使用内存超过了100G,看官网文档上说,mongodb有两部分内存,一个是WiredTiger internal cache,一个是file system cache,wiredTigerCacheSizeGB参数设置的应该是 internal cache,那整个mongodb的使用内存大小能通过参数设置吗,如果不能设置,那不是无限占用内存(官网说MongoDB automatically uses all free memory that is not used by the WiredTiger cache or by other processes)。
疑问3:oplog的数据会全部放到内存吗,还是只放入一部分热数据

3个回答

1.热数据

这一点是SQL和nosql之间的巨大差距,将热数据存在内存相当于自带cache,若wiredtigercache大小控制合理,此处内存性价比相当高。

2.索引

跟热数据同样

3.连接所消耗内存

这里算是与SQL基本相同的一部分

热数据和索引在内存,保证了高速

weixin_38072974
相对忘贫 这个是知道的,索引和热数据都放内存里,现在疑惑的是数据库真正的数据(包括oplog)也才20G,但是整个mongo进程内存用了100多个G
一年多之前 回复

使用mlogfilter查看索引使用效率不高的MongoDB查询语句 如下所示

2017-10-28T06:40:08.791+0000 I COMMAND [conn4431] command foo.data_02 command: find { find: "data_02", filter: { $and: [ ... ] }, projection: { ...}, limit: 50, shardVersion: [ Timestamp 0|0, ObjectId('000000000000000000000000') ] } planSummary: IXSCAN { field1: -1.0, field2: -1.0 } keysExamined:589735 docsExamined:589735 cursorExhausted:1 keyUpdates:0 writeConflicts:0 numYields:4610 nreturned:0 reslen:217 locks:{ Global: { acquireCount: { r: 9222 } }, Database: { acquireCount: { r: 4611 } }, Collection: { acquireCount: { r: 4611 } } } protocol:op_command 8785ms
扫描了58万多条记录,却返回了0条 我想知道像这种情况MongoDB到底是怎么缓存数据的呢?

即只缓存返回结果(0) 还是所有扫描的记录呢(589735)。从内存的角度来说的话, 是返回结果越少内存占用越小 还是 扫描记录越少 内存占用越小?

另外WiredTiger又分两种缓存

WiredTiger internal cache
filesystem cache
这两个缓存是怎么分配的呢?

是internal cache 满了再用filesystem cache呢?
还是同时都有分配呢? 那么这种情况下 什么数据进internal cache 什么数据进filesystem cache呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mongodb3.4
mongodb3.4,mongodb3.4,mongodb3.4,mongodb3.4,mongodb3.4
关于IPHONE内存的困惑,跪求!!!!!!!
建了一个线程如下:rn- (void)getTimerInfoThread rn while (1) rn NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];rn if (self.readTimerDataIng == false && self.readTimerData) rn self.readTimerDataIng = true;rn rn int resTimer = [self getTableTimer];rn self.readTimerDataIng = false;rn sleep(1);rn rn [pool drain];rn rn return;rnrn线程每秒执行一次getTableTimer函数,函数如下rn- (int)getTableTimer//此函数向一个HTTP发送POST请求,属于同步请求rnrn int errorTableInfoCode = 0;rn // NSString *timerInfo = [pwebOperator getTableInformation:@"" :sCountDownUrl:sCountDownRef];rn NSData *postData = [@"" dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; rn rn NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; rn // NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; rn NSMutableURLRequest *request =[ [NSMutableURLRequest alloc] init];rn [request setURL:[NSURL URLWithString:sCountDownUrl]]; rn rn [request setHTTPMethod:@"POST"]; rn [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; rn [request setValue:sCountDownRef forHTTPHeaderField:@"Referer"];rn [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; rn [request setHTTPBody:postData]; rn NSMutableData *currenceData=(NSMutableData*)[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; rn //处理返回的数据rn NSString *resData = [[NSString alloc] initWithData:currenceData encoding:NSUTF8StringEncoding];rn rn rn [resData release];rn [request release];rn return errorTableInfoCode;rnrn在线程中执行完此函数以后,我在模拟器中查看内存的使用情况,发现内存在不停的增加,每隔几秒就会增加0.1Mrn查过资料当有NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];的时候rn[resData release];rn [request release];这两句其实是可以去掉的,我把这两句屏蔽掉以后再测试rn返现情况是一样的,内存还是在增加rn当把线程中的int resTimer = [self getTableTimer];这一句屏蔽掉以后内存就稳定了,不会增加,会不会是HTTP调用了内存不会被释放啊,我也不知道是什么原因了,内存一直增加,请教各位大瞎了
关于内存出错提示的困惑
我做的是用vc4.0开发的基于windows操作系统的C程序,程序总是忽然终止并弹出一对话框提示:rnXXXXXXXX指令引用XXXXXXXXX内存,该内存不能为[read].rn而十分不可思义的是当程序执行到调用函数的return语句时也经常出现此类情况.rn哪一位高手明白怎么会事敬请多多指导,火急!火急!rnrn
内存的困惑
我的计算机内存原是64M的,为何现在突然变为32M?是不是内存条有问题?还是rn---
mongodb3.4集群搭建
mongodb3.4集群搭建 CentOS7 mongodb3.4 mongodb个人学习
MongoDB3.4远程连接
1. MongoDB简介:  MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB文档与JSON对象类似。字段的值有可能包括其它文档、数组以及文档数组。
源码安装MongoDB3.4
新手可以按照脚本一步一步源码安装MongoDB3.4,没毛病!
C++内存申请困惑
写程序写了不少时间了,现在居然遇到一个低级的困惑,求各位大神指点。。。rnrn for (long i = 0; i < 512 * 512 * 512; i++)rn void *ptr = new char[16];rnrn这个问题其实是在编制四叉树和八叉树的时候发现的,故而对代码进行了抽象,做个小实验,上述代码期望动态申请合计2G的内存,可实际运行后再任务管理器的提交部分看到的却是16810660KB约等于16G。基本是期望申请的若干倍,这到底是怎么回事?rnrn这样一来,教课书上的动态内存一旦用于树形结构时,实际内存比计算出的内存大了好多,这个会影响具体的实用性,求大神指点~rnrn小弟跪谢orz
MongoDB3.4安装及卸载
安装MongoDB3.4 1. 导入包管理系统使用的公钥 Ubuntu 的软件包管理工具(即dpkg和APT)要求软件包的发布者通过GPG密钥签名来确保软件包的一致性和真实性。通过以下命令导入MongoDB公共GPG密钥: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:...
内存管理问题,巨困惑
关于内存分配,我的程序在调试运行的时候发现,用windows的taskmgr查看,rn内存使用一栏该程序随着窗口移动,点击按钮等不断增加(当然,不是很厉害),rnrn感到困惑了,同一个窗口为什么资源使用会不断的增加,查看内部代码似乎rn没有内存泄漏的地方,怀疑这个不是内存泄漏问题,而是windows管理内存的方案?rnrn(你尝试最小化窗口后,部分内存才被回收,显示使用了才几百k,然后呼出窗体rn操作后情况依旧。rnrn为什么?rnrn这个程序的消耗资源估计在控件的绘制,查了多遍从代码上很难找出有内存泄漏的迹象,rnBunchCheck工具也没有提示,rnrn如果是操作系统要最小化的时候才回收,那是不是有方法主动触发回收,好定时处理.
内存组织的困惑
一般书上都说,内存布局一般是这样的rnrn------------ ->地址高位rn| 栈(stack)|rn------------rn| 堆(stack)|rn------------rn| BSS |rn------------rn| DATA |rn------------rn| TEXT |rn------------ —>地址低位rn现在有一些疑惑rn#include rnint glob;rnrnvoid main()rn int local;rn printf("0x%08x\n",&glob); //打印本地变量的内存地址 rn printf("0x%08x\n",&local); //打印全局变量的内存地址 rnrnrn在我机器上执行的结果是rn0x00411d68rn0x0012ff7crnrn我的问题是,glob不是全局变量应该放在bss段中,而rnlocal是局部变量应该放在栈中吗。rn那为什么glob的内存地址会比local的内存地址高??rn
mongodb3.4 安装及用户名密码设置
http://www.blogjava.net/liufuxi/archive/2016/12/20/432147.html
mongodb3.4使能传输加密
证书准备 参考http://blog.csdn.net/zahuopuboss/article/details/53606883 准备自建CA并签发服务端证书和客户端证书 把服务端证书合并到一个文件 cat server.key server.crt > mongodb.pem 客户端相同 服务端设置 在配置文件/etc/mongodb.conf中添加
mongodb3.4的安装和配置
下载去官网下载:http://www.mongodb.org/downloads由于是在window下,所以我下载的是msi格式,傻瓜式安装。安装这个和普通安装软件exe一样,一直点下一步,中途改改安装路径 以下是我安装的版本mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed.msi配置安装之后,还需要配置,比如数据库的数据安装路径,日志路径等等创建数据目
MongoDB3.4对象存储(Journaling日志)
在发生故障时提供持久化,MongoDB使用预写日志到磁盘上的日志文件。 WiredTiger存储引擎和日志 在这一节中提到的日志是MongoDB预写日志而不是MongoDB日志文件,WiredTiger使用checkpoints在硬盘上提供一致的数据视图并且允许MongoDB使用最后一个checkpoint恢复数据,然而如果MongoDB意外退出在检查点之间,日志是恢复最后一个检查点之后的数据
mongoDB3.4主从复制实现
第一种:     开启两个mongodb进程,模拟两台机器;     一个为master主服务器,另一个为slave从服务器;     主服务器down机后,从服务器不会成为主服务器。 #在当前目录下创建mongodb的数据文件 zheng@zheng:~$ cd ./mongodbTest/ mkdir ./t1/db mkdir ./t2/db mkdir ./t1/log mkd
Mongodb3.4分片搭建
1.前言 找了很多书,发现对分片的搭建还是有模糊,所以这一次记一下。 2.搭建环境 一共四台主机 ip 职能 192.168.0.124 config、mongos 192.168.0.125 share1 192.168.0.126 share2 192.168.0.127 share3 他们
mongodb3.4 集群搭建实录
我的所有数据都是存在mongodb里, 正常来说一台机器是没什么问题的, 结果在一次新开的机器上未指定数据目录,结果很快就将一个50G左右的磁盘占满, 导致mongodb不可用, 丢失了太多的数据, 更换存储目录后尝试导出已存入的数据,花了好大的精力却没有成功,最终只能不了了之。随着数据量的增加,一块磁盘也无法存储所有数据,况且有了前车之鉴,因此一个完整的可靠的集群的需求已是迫在眉睫。在经过一天的努
关于mongodb3.4中日志持久化的一点疑惑
最近在看mongodb相关的东西,关于journal日志提交频率问题,在官网上发现了两个不一样的描述,不知道是不是理解错了还是其他的原因,望哪位大咖能指点迷津,还有顺便问下storage.journal.commitIntervalMs和journalCommitInterval的区别。[img=https://img-bbs.csdn.net/upload/201710/20/1508501895_356638.png][/img]
MongoDB3.4配置文件参数选项
以下的描述是MongoDB3.4配置文件,对于其它版本的MongoDB配置文件选项,请参考对应的版本。 配置文件 使用配置文件管理mongod和mongos管理更容易,特别是大规模的部署,你可以向配置文件添加注释来解释服务器的配置。 如果你已经安装了一个安装包并且已经启动了MongoDB,并且使用系统初始化那么你已经使用了配置文件。 文件格式 从MongoDB2.6开始推荐一种基于Y
mongodb3.4驱动包$not的用法
环境mongodb:3.4 java:1.7 mongodb-java驱动包:3.4场景帮产品部的同事导一份数据,为了排除一些无用的数据,需要做一些筛选。 比如:full_name字段(即:员工的名称)不包含:[朝阳,测试,null,mac,a-zA-Z0-9]。在mongodb中打算使用$not进行筛选,mongodb写法只需要:/朝阳,测试,null,mac,a-zA-Z0-9/按照上面那
mongodb3.4开启用户认证
db version v3.4.0 初始安装的时候没有admin数据库
MongoDB3.4新特性---ReadOnly-Views
本课程围绕MongoDB ReadOnly View 功能展开,详细讲述了BI、大数据分析、可视化等应用领域在MongoDB数据库的使用。当前对于MongoDB的数据治理处于一个探索阶段,如何有效的利用MongoDB 大数据分布式的优势,将Json这种松散的数据结构完整的展示出来,是作为ReadOnly VIew的一个卖点。rnrn本课程环境:CentOS 7.x, MongoDB 3.4.x
C++内存对象布局的困惑
class Basernrn public:rn int base_member;rn inline virtual void vfBase()cout << "This is in Base::vfBase()" << endl;rn;rnclass Derived1 : public virtual Basernrn public:rn int derived1_member;rn inline void vfBase()cout << "This is in Derived1::vfBase()" << endl;rn inline virtual void vfDerived1()cout << "This is in Derived1::vfDerived1()" << endl;rn;rnclass Derived2 : public virtual Basernrn public:rn int derived2_member;rn inline void vfBase() cout << "This is in Derived2::vfBase()" << endl;rn inline virtual void vfDerived2()cout << "This is in Derived2::vfDerived2()" << endl;rn;rnclass ChildDerived : public virtual Derived1, public virtual Derived2rnrn public:rn int childderived_member;rn inline void vfBase()cout << "This is in ChildDerived::vfBase()" << endl;rn inline void vfDerived1()cout << "This is in ChildDerived::vfDerived1()" << endl;rn inline void vfDerived2()cout << "This is in ChildDerived::vfDerived2()" << endl;rn;rnint main()rnrn ChildDerived d;rn cout << "sizeof ChildDerived: " << sizeof(d) << endl; //output: sizeof ChildDerived: 40 rn return 0;rnrnrn请问rn[color=#FF0000]1.[/color] 这40B的对象内存布局是怎样的?(望高手在vc6.0与gcc下都能分析下 分析最好也能跟下面一样有个表格指明各个字段内容)rn[color=#FF0000]2.[/color] 当class ChildDerived : public virtual Derived1, public virtual Derived2rn改为class ChildDerived : public Derived1, public Derived2时 sizeof ChildDerived:36rn我认为对象的内存布局是这样的rn1.vftable:Derived1的虚函数表rn2.vbtable:虚基类表,用来指明虚基类的位置,在这offset的值为+24,即倒数两格rn3.Derived1::derived1_memberrn4.vftable:Derived2的虚函数表rn5.vbtable:虚基类表,用来指明虚基类的位置,在这offset的值为+12,即倒数两格rn6.Derived2::derived2_memberrn7.ChildDerive::childderived_memberrn8.vftable:虚基类base的虚函数表rn9.Base::base_memberrn因不能用表格,大家将就着看吧,每一行为4个字节,共9行,所以为36字节(假设在vc6.0环境下),不知道我这样的分析里面的顺序有没有搞错。请大神指教!rn[color=#FF0000]3.[/color] 当class ChildDerived : public virtual Derived1, public virtual Derived2rn改为class ChildDerived : public virtual Derived1, public Derived2时 又是怎样的呢?rn结果是:output为36rn[color=#FF0000]4.[/color] 当class ChildDerived : public virtual Derived1, public virtual Derived2rn改为class ChildDerived : public Derived1, public virtual Derived2时 跟3有没有区别呢?rn结果是output为36
升级内存的问题,困惑啊!!!
我的机子已经使用将近一年,一直很好。配置如下:CII 600,主板是GA-6BX7,板上有三条内存插槽,装了2条单面HY64MB的内存(一条PC100,另一条PC133)。rn 一周前因为内存很便宜,正好又空着一个插槽,于是就买了一条单面HY128MB(PC133)的内存,问题也因此而来。rn 机器自检结束启动操作系统前应该有一行提示:Verifing DMI Pool Data......或者Verifing DMI Pool Data......Update Successful,但是自从加了内存之后,提示变成了Unknown Flash Type,而且机子经常无法启动,偶尔启动成功,也经常会在正常工作时突然重启。 rn 我自己查找了原因,这块主板上为了对BIOS进行保护,设置了一个BIOS写保护的跳线,Open为允许写,Closed则不能。原来这个跳线是Closed,我试着将它改成Open,结果上面的问题消失,提示又恢复成Verifing DMI Pool Data......Update Successful,机子也恢复了正常。rn 问题虽然解决,但是有许多不明之处,下面提2个问题:rn1.当机子提示Verifing DMI Pool Data......时,系统在做什么操作?rn2.为什么这个时候要允许BIOS写入?
vs2010 调试 内存占满 的困惑
我笔记本 内存 4G的 cup 2.0 系统 win7 32rnrnrn用 vs2010开发 调试的时候 在项目重新生成 时 rnrn进程 里多了一个 vbc.exe 内存一下子占了大半 我的项目不大 个人测试案例而已rnrn[img=https://img-bbs.csdn.net/upload/201305/22/1369215584_749144.jpg][/img]rnrnrnrn当 vs 重新生成成功后 该进程 消失rnrnrn为什么 在项目重新生成期间 会有这么一个 庞大的进程呢??rn
困惑,中文的内存表示问题?
“汉”字的Unicode编码是6C49rnrnwchar_t wc[] = L"汉"; wc数组内存为49 6C 00 00rnchar c[] = "汉"; c数组内存为BA BA 00rnrn这是为什么?BABA是怎么来的?rnrn知情者来解释一下啊!!!rn
mongodb3.4创建只读视图实例
/** * 这是一个MongoDB3.4创建视图的实例 * (如果需要高亮显示,可以将本页文本copy到支持高亮的编辑器中打开) *  * 准备工作 * 首先创建一个名为test的数据库 * 在test数据库中创建两个集合,分别为users和groups * 分别为两个数据集合录入若干数据:如下面db.users.find()和db.groups.find()查询结果所示 * *
关于 && 和 || 的困惑?
rn rn为什么下面这个程序在 TC2.0 和 VC6.0 环境下运行的结果都是 x=2,y=1,z=1,t=1rn而不是 x=2,y=1,z=2,t=1 ?rn还有,究竟是 && 优先于 || ,还是它们同属于一个优先级?rn rn请各位帮帮帮忙,谢谢各位!本人感激不尽!!rn rn rn#include rnvoid main()rnrn int x=1,y=1,z=1,t;rn t=++x || ++y && ++z;rn printf("x=%d,y=%d,z=%d,t=%d\n",x,y,z,t);rnrn rn rn
MongoDB3.4新特性---Improved BI Connector
本课程环境:CentOS 7.x, MongoDB 3.4.xrnrn本课程围绕MongoDB BI Connector分析工具展开,详细讲述了BI、大数据分析、可视化等应用领域在MongoDB数据库的使用。当前BI工具主要以Tableau为主,而Tableau大多以关系型数据库及CSV、Excel为主,NoSQL的支持并不是特别好,MongoDB作为目前最炙热可热的NoSQL数据库,以文档型数据存储为核心竞争力,能够在大数据热潮下占据领先优势。rnrn通过学习本章课程,同学们可以将MongoDB和自己所使用的BI分析工具相结合,从性能和展现上更出色的报表项目来。rn
mongodb3.4测试过后可以安装
自己在本地win下安装window,在官网上好不容易下载了最新版本的,可是在安装最后一步的时候老是卡住,3.4版本的就可以正常安装。
困惑困惑困惑困惑困惑
有这样一段代码: listView1.Items.Remove(listView1.SelectedItems[0]); 是在右键删除功能中点击“删除”按钮时,listview 会删除当前所选的信息 ,而我想同时把 xml文件中的数据删除~,要怎么实现?
困惑?困惑?困惑?困惑?
我下载一个软件,上面能自动显示一些数据,我现在想对这些数据进行一些处理,以增进其功能,请问如何编程获得这些数据(这样就可以免去手工再输入这些数据了)。这些数据有显示在控件中的,有显示在对话框上面的,怎么办?求各位大侠指点一二。小弟在此谢了?
关于缓存一个疑问,困惑困惑!!!
请帮忙看看 http://expert.csdn.net/Expert/TopicView3.asp?id=2085813
可变参数传进来后内存读写的困惑
[code=C/C++]void va_fun(char* arg, ...)rnrn char sz[100];rn va_list vl;rn va_start(vl, arg);rn memcpy(sz, vl, 100);rnrnrnint main()rnrn char arg[100];rn sprintf(arg, "%s", "abcdefg");rn va_fun(&arg[0]);rn return 0;rn[/code]rnrn调试,我本来以为sz数组的内容会是“efg”,结果根本不是,有点糊涂,谁能帮我解释一下?多谢!
一个困惑很久的问题,有关内存地址映射的
经常听说bios被映射到内存的0fffffh,访问此地址就等于访问bios,现存被映射到0b8000h,给此地纸写数据直接写入显存。那么对286来说,假如我买了1mb的内存条插上去,岂不是有很多内存单元没用过,真实内存的0fffffh,0b8000h都存的是什么东西?如果我要用真实内存中的这个地址怎么办呢?能取消这种映射吗?
mongodb3.4数据库与robo管理数据库软件合集
mongodb3.4数据库与robo管理数据库软件合集mongodb3.4数据库与robo管理数据库软件合集mongodb3.4数据库与robo管理数据库软件合集
有关品牌机添内存的困惑!!!sos!!!
有一台康柏电脑,购入有近一年时间。现在想升级内存,咨询康柏公司后,得到答案是:只能购买康柏专用内存,价格每64MB约1000大元,如果使用非康柏专用内存会导致信息出错,严重的使用半年后会导致主板烧坏。现在市面上的内存很便宜,我是否可以购买兼容内存条?如果使用兼容内存条是否真的会有上述后果?是不是康柏技术人员在危言耸听?因本人对硬件不是很熟,特别是品牌机的,所以向各位请教,望有知情者不吝赐教!谢谢!!!
-----内存映射技术与内存耗费问题的困惑------
rn我的程序中想使用内存映射技术(即把硬盘当作内存使用)来节省内存使用量, rn但是发现当指针偏移并取数据时,内存耗费同样增加,实现与现象如下: rn1.打开一个文件用于做内存映射,得到内存映射指针(此时内存使用量几乎不增加); rn rn2.将内存映射指针偏移但是不取里面的数据时,内存使用量也是几乎不增加; rn3.将内存映射指针偏移且取里面的数据时,内存使用量马上上升,而且上升量与指针偏 rn移量相等; rn4.当指针遍历完整个文件时,再怎么操作内存映射指针内存使用量都不再增加了。 rn从现象上看,像是操作内存映射指针里面的内容时,数据被操作系统 rn拷贝到内存中,而且不释放,对一块数据最多只拷贝一次。 rn这样,我节省内存的目的就无法达到。而如果我在掌上电脑等资源非常有限 rn的硬件上运行程序时,内存资源是十分宝贵的,必须节省,请问是否有 rn解决的办法呢? rn我的内存映射实现程序如下所示,是否可以通过修改API参数等来达到 rn零内存使用目的呢? 谢谢高手指教! rn// 要做内存映射的文件 rn CString strMapFile = getManager()->getPathOnly(); rn rn // 打开内存映射文件 rn#ifdef HMWINCE rn HANDLE hFile = ::CreateFileForMapping(strMapFile, rn GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING, rn FILE_ATTRIBUTE_READONLY,NULL); rn#else rn HANDLE hFile = ::CreateFile(strMapFile, rn GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING, rn FILE_ATTRIBUTE_READONLY,NULL); rn#endif//#ifdef HmWINCE rn rn if(!hFile) rn return ; rn rn HANDLE hFileMap = rn::CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,0,NULL); rn HMBYTE* pDat = (HMBYTE*)::MapViewOfFile(hFileMap,FILE_MAP_WRITE,0,0,0); rn ::CloseHandle(hFileMap); rn ::CloseHandle(hFile); rn //////////////////////////////////////// rn // 进行一系列的内存映射数据操作 rn if(pDat) rnrn rn //if(pDat) rn //////////////////////////////////////// rn UnmapViewOfFile(pDat); rn rn------end---------------------
关于linux的一点困惑
本人是计算机专业的,大一。很多人都给我说linux不错,windows不会教给你任何东西的。可是如果要是换linux系统的话,windows系统中的很多软件都将不能使用,比如ps等,虽然我也知道linux里面也有强大的软件,可是市场上关于这些软件方面的书籍还是比较少的,换言之,学习起来是不是比较困难呢?现在比较纠结,到底要不要换linux呢,如果换呢,哪个发行版比较好呢?
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池