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++的編譯器,並沒有專門的實體和其對應。