Windows記憶體管理的方法

2021-06-22 15:00:33 字數 2227 閱讀 5590

一、先說說記憶體的概念

1.物理記憶體:即插在主機板上的記憶體條。他是固定的,記憶體條的容量多大,物理記憶體就有多大(整合顯示卡系統除外)。但是如果程式執行很多或者程式本身很大的話,就會導致大量的物理記憶體占用,甚至導致物理記憶體消耗殆盡。

2.虛擬記憶體:虛擬記憶體就是在硬碟上劃分一塊頁面檔案,充當記憶體。當程式在執行時,有一部分資源還沒有用上或者同時開啟幾個程式卻只操作其中乙個程式時,系統沒必要將程式所有的資源都塞在物理記憶體中,於是,系統將這些暫時不用的資源放在虛擬記憶體上,等到需要時在調出來用。

當程式執行時需要從記憶體中讀出這段程式的**。**的位置必須在物理記憶體中才能被執行,由於現在的作業系統中有非常多的程式執行著,記憶體中不能夠完全放下,所以引出了虛擬記憶體的概念。把哪些不常用的程式片斷就放入虛擬記憶體,當需要用到它的時候在load入主存(物理記憶體)中。這個就是記憶體管理所要做的事。記憶體管理還有另外一件事需要做:計算程式片段在主存中的物理位置,以便cpu排程。
二、記憶體管理的主要方式
1.塊式管理

把主存分為一大塊、一大塊的,當所需的程式片斷不在主存時就分配一塊主存空間,把程 序片斷load入主存,就算所需的程式片度只有幾個位元組也只能把這一塊分配給它。這樣會造成很大的浪費,平均浪費了50%的記憶體空間,但時易於管理。

2.頁式管理

把主存分為一頁一頁的,每一頁的空間要比一塊一塊的空間小很多,顯然這種方法的空間利用率要比塊式管理高很多。

3.段式

把主存分為一段一段的,每一段的空間又要比一頁一頁的空間小很多,這種方法在空間利用率上又比頁式管理高很多,但是也有另外乙個缺點。乙個程式片斷可能會被分為幾十段,這樣很多時間就會被浪費在計算每一段的實體地址上(計算機最耗時間的大家都知道是i/o吧)。
4.段頁式管理。(現在常用)

結合了段式管理和頁式管理的優點。把主存分為若干頁,每一頁又分為若干段。

三、幾種優化記憶體管理方法

(一)、提高記憶體的使用效率

1.提高系統其他部件的效能

計算機其他部件的效能對記憶體的使用也有較大的影響,如匯流排型別、cpu、硬碟和視訊記憶體等。如果視訊記憶體太小,而顯示的資料量很大,再多的記憶體也是不可能提高其執行速度和系統效率的。如果硬碟的速度太慢,則會嚴重影響整個系統的工作。

2.調整快取記憶體區域的大小

可以在「計算機的主要用途」選項卡中設定系統利用快取記憶體的比例。如果系統的記憶體較多,可選擇「網路伺服器」,這樣系統將用較多的記憶體作為快取記憶體。在cd-rom標籤中,可以直接調節系統用多少記憶體作為cd-rom光碟讀寫的快取記憶體。

(二)、優化記憶體管理

1.監視記憶體

系統的記憶體不管有多大,總是會用完的。雖然有虛擬記憶體,但由於硬碟的讀寫速度無法與記憶體的速度相比,所以在使用記憶體時,就要時刻監視記憶體的使用情況。windows作業系統中提供了乙個系統監視器,可以監視記憶體的使用情況。一般如果只有60%的記憶體資源可用,這時你就要注意調整記憶體了,不然就會嚴重影響電腦的執行速度和系統效能。

2.及時釋放記憶體空間

如果你發現系統的記憶體不多了,就要注意釋放記憶體。所謂釋放記憶體,就是將駐留在記憶體中的資料從記憶體中釋放出來。釋放記憶體最簡單有效的方法,就是重新啟動計算機。另外,就是關閉暫時不用的程式。還有要注意剪貼簿中如果儲存了影象資料,是要占用大量記憶體空間的。這時只要剪貼幾個字,就可以把記憶體中剪貼簿上原有的沖掉,從而將它所占用的大量的記憶體釋放出來。

3.優化記憶體中的資料

在windows中,駐留記憶體中的資料越多,就越要占用記憶體資源。所以,桌面上和工作列中的快捷圖示不要設定得太多。如果記憶體資源較為緊張,可以考慮盡量少用各種後台駐留的程式。平時在操作電腦時,不要開啟太多的檔案或視窗。長時間地使用計算機後,如果沒有重新啟動計算機,記憶體中的資料排列就有可能因為比較混亂,從而導致系統效能的下降。這時你就要考慮重新啟動計算機。

四、申請記憶體的一些函式申請

釋放 new

delete

malloc

free

cotaskmemalloc

cotaskmemfree

imalloc::alloc

imalloc/free

globalalloc

globalfree

localalloc

localfree

heapalloc

heapfree

virtualalloc

virtualfree

Windows的記憶體管理

一位址空間 1.位址空間 乙個程式最大的定址範圍。對於win32作業系統,最大的定址範圍為2的32次方。2.位址空間的劃分 通常情況下 2.1使用者空間 執行應用程式的 資料等。2.1.1 空指標區 null區 位址範圍 0 0x0000ffff 2.1.2 使用者區 位址範圍 0x0001000 ...

windows記憶體管理

32位平台下,cpu的定址能力為4gb,pc中有些裝置 如顯示卡 都提供自己的裝置記憶體,這部分記憶體會對映到pc的物理記憶體上,也就是讀寫這段物理記憶體位址,其實是在讀寫裝置記憶體位址,而不會讀寫物理記憶體位址。雖然提供了4gb的定址能力,但是實際可能沒有這麼大的物理記憶體,這樣就引入了虛擬記憶體...

Windows 記憶體管理

windows 2000 使用基於分頁機制的虛擬記憶體。每個程序有4gb的虛擬位址空間。基於分頁機制,這4gb位址空間的一些部分被映 物理記憶體,一些部分對映硬碟上的交換檔案,一些部分什麼也沒有對映。程式中使用的都是4gb位址空間中的虛擬位址。而訪問物理記憶體,需要使用實體地址。下面我們看看什麼是實...