[特殊字符] 開發工作高內存占用場景下,Windows 內存壓縮機制是否應該啟用?實測分析與優化建議

在日常開發中,我們往往需要同時運行多個高占用內存的工具,例如:

  • IntelliJ IDEA

  • VMware 虛擬機

  • 多個 Java 后端程序

這些應用程序非常“吃內存”,輕松就能把 16GB、甚至 24GB 的物理內存用滿。那么,Windows 的“內存壓縮機制”(Memory Compression)是否對我們開發者有幫助?需不需要開啟?

本文結合我的開發環境與實測表現,從系統原理和實際體驗兩方面,為大家分享:


💡 什么是內存壓縮(Memory Compression)?

內存壓縮是 Windows 10 及以上版本中的一項內存管理優化:

  • 當系統內存使用率較高時,會將不活躍的內存頁壓縮后保存在物理內存中

  • 這樣可以延遲或減少將數據寫入磁盤的虛擬內存(pagefile.sys),從而提升性能。

? 簡單來說:

內存壓縮 = 在內存緊張時,優先“擠壓”內存數據,而不是馬上用磁盤來換出內容。


🖥? 我的開發環境

在實際工作中,我的日常開發場景如下:

項目情況
IDEIntelliJ IDEA,內存占用約 2~4GB
虛擬機VMware,運行 Linux,分配內存 8~12GB
Java 服務多進程,每個 Java 應用約占用 2~4GB
系統配置Windows 10 + i5-12500H + 24GB DDR4 3200MHz

在這種場景下,系統內存使用率經常超過 90%,是內存壓縮的典型觸發環境。


🧪 如何查看是否啟用了內存壓縮?

? 方法如下:

  1. 管理員身份 打開 PowerShell。

  2. 執行命令:

    Get-MMAgent
    
  3. 查看輸出結果中的:

    MemoryCompression    : True
    
    • True 表示內存壓縮已啟用。

    • False 表示未啟用。


🔧 如何手動啟用或關閉內存壓縮?

? 啟用內存壓縮(推薦):

Enable-MMAgent -mc

重啟電腦后生效。

? 禁用內存壓縮(不推薦高負載用戶):

Disable-MMAgent -mc

關閉后同樣需要重啟生效。


🧠 啟用 vs 禁用內存壓縮:對比實測

我對兩種狀態進行了開發環境下的實測對比:

? 啟用內存壓縮時:

  • 系統即便內存占用超過 90%,也不容易掉入磁盤分頁。

  • 虛擬機、IDEA 最小化再恢復時,響應快、不卡頓

  • Java 應用之間切換流暢,系統整體更穩定。

? 禁用內存壓縮時:

  • 系統頻繁訪問 pagefile,磁盤 I/O 明顯上升

  • 切回最小化的虛擬機或 IDE,加載卡頓明顯,有黑屏/延遲問題

  • JVM 服務響應變慢,甚至會因為內存不足被系統回收。


💬 內存壓縮機制的 CPU 開銷大嗎?

Windows 的內存壓縮是輕量級的,使用高效的算法在內核層面運行。

以我使用的 i5-12500H(12核16線程) 來說,壓縮帶來的 CPU 開銷可以忽略不計,系統任務管理器幾乎看不出明顯波動。

相比磁盤讀寫,CPU 做壓縮遠遠更快、更省時間


🔧 推薦優化建議(高內存開發場景)

項目建議
內存壓縮啟用 ?(推薦)
虛擬內存(pagefile)啟用并設為“系統管理”或固定為 24GB~32GB
虛擬機內存分配不宜超過物理內存一半,推薦 6~10GB
JVM 堆內存參數合理分配 -Xmx,不宜過大,避免多進程搶占
IDEA 配置建議使用默認或適度增加內存參數(如 -Xmx2048m
多項目調試盡可能使用 Docker、WSL2 替代 VMWare,更節省內存資源

🧩 總結

在像我這樣內存使用率接近 90% 的開發場景下:

  • 啟用內存壓縮 能顯著減少卡頓、提升響應速度。

  • 是介于“繼續占內存”和“換出到磁盤”之間的一種高性能方案。

  • 不建議關閉,除非你對 CPU 延遲要求極高,或者做實時音頻/視頻等極限任務。


📌 小提示: 內存壓縮 ≠ 替代物理內存,它是當你“物理內存吃緊”時的一個高效“緩沖墊”。


💬 如果你也有類似的開發需求或遇到過系統卡頓的問題,歡迎留言交流!我也可以根據你具體的開發工具幫你制定更細致的內存優化建議。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903657.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式學習筆記 - HAL_xxx_MspInit(xxx);函數

使用cubeMX生成的HAL庫函數中,所有外設的初始化函數HAL_xxx_Init(&xxxHandle)中都存在有此調用函數HAL_xxx_MspInit(xxx),此調用函數其實是對各外設模塊比如UART,I2C等控制器使用的的底層硬件進行初始化,包括時鐘,…

Nginx — http、server、location模塊下配置相同策略優先級問題

一、配置優先級簡述 在 Nginx 中,http、server、location 模塊下配置相同策略時是存在優先級的,一般遵循 “范圍越小,優先級越高” 的原則,下面為你詳細介紹: 1. 配置繼承關系 http 塊:作為全局配置塊&…

WPF之TextBlock控件詳解

文章目錄 1. TextBlock控件介紹2. TextBlock的基本用法2.1 基本語法2.2 在代碼中創建TextBlock 3. TextBlock的常用屬性3.1 文本內容相關屬性3.2 字體相關屬性3.3 外觀相關屬性3.4 布局相關屬性 4. TextBlock文本格式化4.1 使用Run元素進行內聯格式化4.2 其他內聯元素 5. 處理長…

華為云loT物聯網介紹與使用

🌐 華為云 IoT 物聯網平臺詳解:構建萬物互聯的智能底座 隨著萬物互聯時代的到來,物聯網(IoT)已成為推動數字化轉型的關鍵技術之一。華為云 IoT 平臺(IoT Device Access)作為華為云的核心服務之…

AnimateCC教學:形狀補間動畫的代碼實現

核心代碼: var shape; var animationProps = {width: 50,height: 50,cornerRadius: 0,color: "#00FF00" }; function init() { shape = new createjs.Shape();shape.x = 200;shape.y = 150;stage.addChild(shape);// 初始繪制updateShape();// 設置補間動畫createTw…

Android學習總結之Retrofit篇

1. 注解原理概述 在 Java 里,注解是一種元數據,它為代碼提供額外信息但不影響程序的實際邏輯。注解可以在類、方法、字段等元素上使用,并且能在編譯時、運行時通過反射機制被讀取。Retrofit 充分利用了 Java 注解機制,通過自定義…

windows11 編譯 protobuf-3.21.12 c++

下載 protobuf 包,本文使用 3.21.12 版本,Gitub下載鏈接: Github官網 , 網盤下載: 網盤 如果電腦環境沒有安裝 cmake 則需要安裝,本文測試使用 cmake-3.25.1 版本, 下載地址:[camke-3.25.1] (…

Java繼承中super的使用方法

super 關鍵字在 Java 中用于訪問父類的成員(包括字段、方法和構造函數)。當你在子類中調用父類的方法或訪問父類的成員變量時,super 是必不可少的工具。 🔑 super 的基本用法 1. 調用父類的構造方法 在子類的構造方法中&#x…

網絡安全之淺析Java反序列化題目

前言 這段時間做了幾道Java反序列化題目,發現很多題目都是類似的,并且可以通過一些非預期gadget打進去,就打算總結一下常見的題目類型以及各種解法,并提煉出一般性的思維方法。 正文 分析入口點 拿到題目,有附件最…

動態規劃問題,下降路徑最小和(dp初始化問題,狀態壓縮),單詞拆分(回溯法+剪枝+記憶化),substr函數

下降路徑最小和 題目鏈接: 931. 下降路徑最小和 - 力扣(LeetCode) 題目描述: 給你一個 n x n 的 方形 整數數組 matrix ,請你找出并返回通過 matrix 的下降路徑 的 最小和 。 下降路徑 可以從第一行中的任何元素開…

大數據治理自動化與智能化實踐指南:架構、工具與實戰方案(含代碼)

??個人主頁??:一ge科研小菜雞-CSDN博客 ????期待您的關注 ???? 一、引言:從人治到機治,數據治理正在進化 隨著數據體量持續膨脹、數據場景復雜化,傳統依賴人工規則的大數據治理方式已難以為繼。企業在治理過程中面臨: 數據質量問題激增,人工檢測成本高 元數…

Golang - 實現文件管理服務器

先看效果: 代碼如下: package mainimport ("fmt""html/template""log""net/http""os""path/filepath""strings" )// 配置根目錄(根據需求修改) //var ba…

Linux-04-用戶管理命令

一、useradd添加新用戶: 基本語法: useradd 用戶名:添加新用戶 useradd -g 組名 用戶:添加新用戶到某個組二、passwd設置用戶密碼: 基本語法: passwd 用戶名:設置用戶名密碼 三、id查看用戶是否存在: 基本語法: id 用戶名 四、su切換用戶: 基本語法: su 用戶名稱:切換用…

Ollama 安裝 QWen3 及配置外網訪問指南

一、Ollama 安裝 QWen3 安裝步驟 首先嘗試運行 QWen3 模型: ollama run qwen3 如果遇到版本不兼容錯誤(Error 412),表示需要升級 Ollama: curl -fsSL https://ollama.com/install.sh | sh 驗證版本: o…

高性能架構設計-數據庫(讀寫分離)

一、高性能數據庫簡介 1.高性能數據庫方式 讀寫分離:將訪問壓力分散到集群中的多個節點,沒有分散存儲壓力 分庫分表:既可以分散訪問壓力,又可以分散存儲壓力 2.為啥不用表分區 如果SQL不走分區鍵,很容易出現全表鎖…

【Hive入門】Hive性能優化:執行計劃分析EXPLAIN命令的使用

目錄 1 EXPLAIN命令簡介 1.1 什么是EXPLAIN命令? 1.2 EXPLAIN命令的語法 2 解讀執行計劃中的MapReduce階段 2.1 執行計劃的結構 2.2 Hive查詢執行流程 2.3 MapReduce階段的詳細解讀 3 識別性能瓶頸 3.1 數據傾斜 3.2 Shuffle開銷 3.3 性能瓶頸識別與優化 4 總結 在大…

開源模型應用落地-qwen模型小試-Qwen3-8B-快速體驗(一)

一、前言 阿里云最新推出的 Qwen3-8B 大語言模型,作為國內首個集成“快思考”與“慢思考”能力的混合推理模型,憑借其 80 億參數規模及 128K 超長上下文支持,正在重塑 AI 應用邊界。該模型既可通過輕量化“快思考”實現低算力秒級響應,也能在復雜任務中激活深度推理模式,以…

Kafka Producer的acks參數對消息可靠性有何影響?

1. acks0 可靠性最低生產者發送消息后不等待任何Broker確認可能丟失消息(Broker處理失敗/網絡丟失時無法感知)吞吐量最高,適用于允許數據丟失的場景(如日志收集) 2. acks1 (默認值) Leader副本確認模式生產者等待Le…

虛擬機centos7安裝docker

虛擬機CentOS 7上安裝 Docker流程 1. 更新系統軟件包 需要確保系統軟件包是最新的 sudo yum -y update sudo:以超級用戶權限執行命令。 yum:CentOS的包管理器工具。 -y:自動確認所有提示,直接執行。 2. 安裝 Docker 依賴 在安裝 …

ZYNQ MPSOC之PL與PS數據交互DMA方式

ZYNQ MPSOC之PL與PS數據交互DMA方式 1 摘要 XILINX ZYNQ 以及 ZYNQ MPSOC主要優勢在于異構 ARM+FPGA。其中非常關鍵的一點使用了 AXI 總線進行高速互聯。而且這個 AXI 總線是開放給我們用戶使用的。在前面的文章中我們詳解了使用了AXI-HP方式PL到PS端進行數據交互。本文主要涉…