詞彙表/記憶體

已壓縮的記憶體

又稱:已壓縮的記憶體

簡短回答

已壓縮的記憶體是macOS為了騰出更多記憶體而壓縮的記憶體資料。活動監視器會以「已壓縮」顯示其總量,屬於「已使用的記憶體」的一部分。

記憶體吃緊時,macOS會把最近沒用到的記憶體壓縮起來,而不是直接移到磁碟。壓縮和解壓縮通常比從啟動磁碟讀取快得多。

有一些已壓縮的記憶體是正常的。「記憶體」標籤頁會顯示總量,你也可以加入一個欄位,查看每個程序有多少記憶體被壓縮。

已壓縮的記憶體為什麼很高

「已壓縮」的數值很大,表示macOS不得不騰出空間。記憶體壓力變黃往往就是這個原因。這是交換檔到磁碟之前的一步,所以代表App要求的記憶體已經超過可用的量。

如何查看哪個App的記憶體被壓縮了

在「記憶體」標籤頁中,選擇「顯示方式」→「欄位」,然後加入已壓縮記憶體的欄位。依該欄位排序,就能看到哪些程序的壓縮資料最多。這些通常是開了很久卻沒在使用的App。

「已壓縮」數值實際上衡量的是什麼

活動監視器對「已壓縮」的說明是:用來儲存最近未使用資料之壓縮版本的實體記憶體。所以這個數值是壓縮後的資料在RAM中占用的空間,而不是資料解壓縮後的大小。

裡面的資料比「已壓縮」數值更大。兩者的差距,就是macOS透過壓縮騰出的記憶體。

Apple說明,當Mac接近記憶體容量上限時,記憶體中非作用中的App會被壓縮,讓你正在使用的App有更多記憶體可用。所以長時間留在背景的App通常占有最多的壓縮記憶體,切換回其中一個時,也可能要等一下讓它的資料解壓縮。

壓縮、交換檔與記憶體壓力之間的關係

macOS會分階段處理記憶體不足。每個階段都會顯示在活動監視器的不同位置。

  1. 最近沒用過的資料會被壓縮並留在RAM中。「已壓縮」數值會增加。
  2. 壓縮也不夠時,macOS會把壓縮後的資料移到啟動磁碟上。「使用的交換檔」會增加。
  3. 當App再次需要這些資料時,macOS會從磁碟讀回並解壓縮。如果這種情況經常發生,Mac就會感覺變慢,記憶體壓力也會變成黃色或紅色。

如何在「終端機」中查看壓縮記憶體

有兩個唯讀指令可以顯示活動監視器所用的相同資訊。比較儲存量和占用量,就能知道你的資料壓縮得如何。兩者差距越大,記憶體壓縮省下的空間就越多。

  1. 執行top -l 1 | grep PhysMem。括號中的compressor數值,就是存放壓縮資料的記憶體。
  2. 執行vm_stat。Pages occupied by compressor是壓縮資料在RAM中占用的空間。Pages stored in compressor是這些資料未壓縮時的大小。將任一個數值乘以第一行的分頁大小,就能換算成位元組。
  3. 執行vm_stat 5,每5秒會輸出一行,按下Control-C即可停止。第一行顯示的是開機以來的總數,之後各行的comprs和dcomprs欄則顯示每個時段內有多少分頁被壓縮和解壓縮。

正常與值得擔心的壓縮記憶體

正常:記憶體壓力為綠色時,「已壓縮」維持在穩定的水準。macOS只是以較小的形式保存舊資料。即使在RAM充足的Mac上,看到一些壓縮記憶體也很常見,尤其是開機一段時間之後。

值得擔心:「已壓縮」一整天都在上升,「使用的交換檔」也跟著上升,記憶體壓力經常是黃色或紅色。以你正在執行的工作來說,Mac的RAM不夠用,所以請結束沒在使用的App,或少同時執行幾個吃重的App。

大家常問的問題

活動監視器中的「已壓縮」是什麼意思?

它是macOS為了釋放記憶體而壓縮的記憶體量。

已壓縮的記憶體是壞事嗎?

不是。這是macOS避免使用磁碟的方法。如果已壓縮的記憶體很多,同時記憶體壓力為黃色或紅色,就表示以你的工作量來說,這台Mac的記憶體不夠用。

如何減少已壓縮的記憶體?

結束你沒在用的App。App結束後,它已壓縮的記憶體就會釋放。

壓縮記憶體會讓Mac變慢嗎?

壓縮和解壓縮會占用一些處理器時間,但通常比從磁碟讀取快得多。只有當Mac必須不斷壓縮和交換檔時,你才會感覺到變慢,這時記憶體壓力會顯示為黃色或紅色。

可以在Mac上關閉記憶體壓縮嗎?

「系統設定」中沒有這個選項,你也不該去動它。沒有壓縮,macOS就得更早動用磁碟,而磁碟比較慢。

「已壓縮的VM」欄是什麼?

這是各程序的欄位,你可以在「記憶體」標籤頁中透過「顯示方式」>「直欄」加入。它會顯示每個程序的記憶體中有多少已被壓縮。

相關詞條

逐步教學:Chrome占用太多記憶體。

想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。