cc编译的程序占用的内存
① windows内存缓存影响
1.1 缓存管理器介于内存管理器(VMM)和文件系统驱动程序(FS)之间,它包含一组以"Cc"打头的内核模式函数,全局变量,以及一些系统线程.
1.2 缓存管理器(CM)以虚拟块(Virtual Block)为基础来缓存数据,
这使得可以在不涉及文件系统驱动程序的情况下进行智能预读((Read_Ahead)和延迟(Lazy_Write)
1.3 Windows缓存管理器使用一种称为虚拟块缓存(virtual Block caching)的方法,它跟踪,记录了哪些文件的哪些部分位于缓存中.
1.4 在intel x86系统中,系统默认的缓存大小为512MB,地址范围是0xc1000000--0xe100000
2.缓存管理器ring read and write operation
2.1 读的操作.
大致的过程如下,从I/O管理器发出一个read的IRP开始,然后是到文件系统驱动程序,然后是缓存管理器,再然后是虚拟内存管理器.
中间需要进行两个判断,1.缓存管理器是否将文件缓存到系统缓存中? 2,是否产生页错误?
2.2 写操作和读操作类似,见下图.
3.Cache Manager Interface
3.1 文件流(File Stream) 操作函数(
使文件映射到系统缓存中.
@ CcInitializeCacheMap()
@ CcSetFileSize()
@ CcFlushCache()
@ CcZeroData()
@ ()
@ ......
3.2 文件系统接口
一旦一个文件已经被建立起缓存方式的访问环境,文件系统驱动程序就调用几个函数中的某一个来访问文件中的数据.
要访问被缓存的数据,可以通过下面三种主要的方法:
② VC++、C、CC之间有什么区别
vc++是微软开发的C++开发工具,主要用于window平台的软件开发,但是合理的配置也可以编译linux或者android下的软件(需要对应的sdk或者gcc编译器)。针对window应用的开发,其提供了mfc库,可以提高window应用程序开发的速度和质量。一般应用于网络通信、UI开发、应用软件、服务软件等大中型软件项目开发
C不是C++,虽然一开始是一种面向过程编程的语言,但新的linux内核使用了该语言编程,但是却是遵循的面向对象的概念。可以进行端口、寻址和内存操作,一般应用于内核、驱动、静态库、动态库等小型项目或者系统项目的开发。
CC一般多存在于makefile文件,是一种编译时的环境变量,往往指向一个C/C++的编译器,并没有专门的实体和其对应。