win11內(nèi)存泄露如何解決 win11內(nèi)存泄露原因分析和多種解決辦法

最近不少使用win11系統(tǒng)的小伙伴,發(fā)現(xiàn)自己電腦桌面窗口占用的內(nèi)存非常的大,同時(shí)還出現(xiàn)了比較嚴(yán)重的內(nèi)存泄露,就會導(dǎo)致其他的程序運(yùn)行卡頓不流暢,針對這個(gè)問題,我們應(yīng)該用戶什么方法來解決呢?我們打開電腦的控制面板,點(diǎn)擊選擇電源按鈕的功能,取消勾選啟用快速啟動選項(xiàng)即可,重新啟動電腦就能解決問題呀,也可能是顯卡驅(qū)動程序出現(xiàn)問題了,重新下載驅(qū)動程序就好了。
內(nèi)存泄露的原因:
內(nèi)存泄漏是由于錯(cuò)誤的內(nèi)存分配導(dǎo)致計(jì)算機(jī)程序中的資源錯(cuò)位。當(dāng)未使用的RAM位置仍未釋放時(shí),就會發(fā)生這種情況。不要將內(nèi)存泄漏與空間泄漏或內(nèi)存使用率高相混淆,后者指的是程序使用的 RAM 超出了需要。據(jù)稱,Windows 11/10/8/7 系統(tǒng)上的內(nèi)存泄漏發(fā)生在內(nèi)存未被使用但無法訪問時(shí)。
為什么內(nèi)存泄漏不好:
內(nèi)存泄漏很糟糕,因?yàn)樗且粋€(gè)錯(cuò)誤,是操作系統(tǒng)或軟件中的一個(gè)缺陷。但讓我們看看它究竟是如何影響系統(tǒng)的:
- 由于即使不使用內(nèi)存也不會釋放,因此會導(dǎo)致內(nèi)存耗盡。
- 內(nèi)存耗盡導(dǎo)致軟件老化。
- 可用內(nèi)存減少會導(dǎo)致響應(yīng)時(shí)間增加和系統(tǒng)性能下降。
- 未經(jīng)檢查的內(nèi)存泄漏最終可能導(dǎo)致應(yīng)用程序崩潰。
為了識別內(nèi)存泄漏,程序員需要訪問程序的源代碼。
如何定位內(nèi)存泄漏
要解決一個(gè)問題,我們需要先識別它。定位內(nèi)存泄漏的基本步驟是:
- Affirmation : 確定是否發(fā)生泄漏。
- 查找內(nèi)核模式內(nèi)存泄漏:定位由內(nèi)核模式驅(qū)動程序組件引起的泄漏。
- 查找用戶模式內(nèi)存泄漏:定位由用戶模式驅(qū)動程序或應(yīng)用程序引起的泄漏。
內(nèi)存分配是如何發(fā)生的
應(yīng)用程序分配 RAM 有不同的模式。如果空間在使用后沒有釋放,無論分配模式如何,都會發(fā)生內(nèi)存泄漏。一些常見的分配模式是:
- HealAlloc 函數(shù)用于堆內(nèi)存分配。C/C++ 運(yùn)行時(shí)等效項(xiàng)是 malloc 和 new。
- 用于從操作系統(tǒng)直接分配的 VirtualAlloc 函數(shù)。
- 用于保存應(yīng)用程序內(nèi)核內(nèi)存的 Kernel32 API。例如,CreateFile、CreateThread。
- User32 API 和 Gdi32 API。
如何防止 Windows 中的內(nèi)存泄漏
我們都知道預(yù)防勝于治療,因此監(jiān)控您的系統(tǒng)非常重要。
您需要注意各個(gè)程序和應(yīng)用程序是否異常使用 RAM。您可以通過按CTRL+SHIFT+ESC轉(zhuǎn)到 Windows 任務(wù)管理器,并添加句柄、用戶對象、GDI 對象等列。
這將幫助您輕松監(jiān)控資源使用情況。
Microsoft 診斷內(nèi)存泄漏的工具
各種工具診斷各種分配模式的內(nèi)存泄漏:
- Application Verifier 診斷堆泄漏。
- UMDH(Windows 調(diào)試工具的一個(gè)組件)通過監(jiān)視堆內(nèi)存分配來分析單個(gè)進(jìn)程的泄漏。
- Trace Capture 用于全面分析 RAM 使用情況。
- Xperf 也跟蹤堆分配模式。
- CRT Debug Heap 不僅跟蹤堆分配,還啟用編碼實(shí)踐以最大限度地減少泄漏。
- JavaScript Memory Leak Detector 調(diào)試代碼中的內(nèi)存泄漏。
使用技巧
- 使用內(nèi)核HANDLE和其他智能指針進(jìn)行 Win32 資源和堆分配。
- 從 ATL 庫獲取用于內(nèi)核分配的自動資源管理類。C++ 標(biāo)準(zhǔn)具有用于堆分配的auto_ptr 。
- 借助_com_ptr_t或_bstr_t或_variant_t將 COM 接口指針封裝在“智能指針”中。
- 監(jiān)視 .NET 代碼的異常內(nèi)存使用情況。
- 避免函數(shù)的多個(gè)退出路徑,以便在函數(shù)結(jié)束時(shí)讓分配從大多數(shù)塊中的變量中釋放出來。
- 僅在釋放 _finally 塊中的所有分配后才使用本機(jī)異常。將所有堆和句柄分配包裝到智能指針中,以便使用 C++ 異常。
- 在重新初始化或丟棄 PROPVARIANT 對象之前,始終調(diào)用PropVariantClear函數(shù)。
如何修復(fù) Windows 11/10 中的內(nèi)存泄漏
就像防止內(nèi)存泄漏的各種方法一樣,阻止內(nèi)存泄漏的方法也是多種多樣的。但在開始之前,記得先創(chuàng)建一個(gè)系統(tǒng)還原點(diǎn)。
1]關(guān)閉進(jìn)程并重新啟動
如果您看到不必要的進(jìn)程占用過多 RAM,您可以在任務(wù)管理器中結(jié)束該進(jìn)程。您將需要重新啟動設(shè)備,以便釋放的空間可供其他進(jìn)程使用。沒有重新啟動內(nèi)存泄漏問題將無法解決。Runtime Broker 是一種已知會降低 PC 速度的進(jìn)程??纯磫为?dú)禁用那個(gè)是否有效。
2]內(nèi)存診斷工具
要訪問適用于 Windows 的內(nèi)置內(nèi)存診斷工具:
- 保存所有重要工作。
- 按Win + R打開“運(yùn)行”窗口。
- 在“運(yùn)行”窗口中鍵入命令mdsched.exe。
- 重新啟動電腦。
- 重新啟動后,執(zhí)行基本掃描或選擇“高級”選項(xiàng),如“測試組合”或“通過計(jì)數(shù)”。
- 按F10開始測試。
這些仍然是臨時(shí)修復(fù)。
3]檢查驅(qū)動程序更新
過時(shí)的驅(qū)動程序會導(dǎo)致內(nèi)存泄漏。保持所有驅(qū)動程序更新。按照以下方法之一更新您的設(shè)備驅(qū)動程序:
- 您可以 通過 Windows 可選更新檢查驅(qū)動程序更新以更新您的驅(qū)動程序
- 您可以訪問制造商的網(wǎng)站 下載驅(qū)動程序。
- 使用 免費(fèi)的驅(qū)動更新軟件
- 如果您的計(jì)算機(jī)上已有 INF 驅(qū)動程序文件,則:
- 打開 設(shè)備管理器。
- 單擊驅(qū)動程序類別以展開菜單。
- 然后選擇相關(guān)的驅(qū)動程序并右鍵單擊它。
- 選擇 更新驅(qū)動程序。
- 按照屏幕上的向?qū)瓿梢纛l驅(qū)動程序的更新。
更新您的操作系統(tǒng)和已安裝的程序以及 Microsoft Store 應(yīng)用程序也可能有所幫助。
4]優(yōu)化性能
調(diào)整 Windows 的性能將管理一切,包括處理器調(diào)度和內(nèi)存使用,以阻止內(nèi)存泄漏。按著這些次序:
- 右鍵單擊“此電腦”,然后在左側(cè)窗格中選擇“高級”設(shè)置。
- 在“高級”選項(xiàng)卡下,轉(zhuǎn)到“性能”,然后是“設(shè)置”。
- 選中“調(diào)整以獲得最佳性能”并單擊“確定”。
- 重新啟動并檢查問題是否已解決。
如果這個(gè)簡單的解決方案不起作用,請嘗試下一個(gè)解決方案。
5]禁用啟動時(shí)運(yùn)行的程序
禁用麻煩的程序是擺脫內(nèi)存泄漏問題的唯一方法。轉(zhuǎn)到任務(wù)管理器并禁用制造麻煩的程序。如果您不知道是哪些程序造成了問題,請執(zhí)行以下操作:
- 轉(zhuǎn)到“任務(wù)管理器”。
- 轉(zhuǎn)到“啟動”。
- 禁用默認(rèn)情況下不需要運(yùn)行的啟動程序。
6] 對硬盤進(jìn)行碎片整理
雖然 Windows 11/10 會自動為您執(zhí)行此操作,但您可能需要偶爾對硬盤進(jìn)行碎片整理以優(yōu)化性能:
- 轉(zhuǎn)到“這臺電腦”或“我的電腦”。
- 右鍵單擊系統(tǒng)硬盤驅(qū)動器(通常是 C: 驅(qū)動器)。
- 轉(zhuǎn)到“屬性”下的“工具”,然后選擇“優(yōu)化”。
- 選擇要進(jìn)行碎片整理的驅(qū)動器并選擇“分析”。
新碎片后重新啟動計(jì)算機(jī)。
7] 關(guān)閉時(shí)清除頁面文件
它現(xiàn)在變得越來越復(fù)雜——但別擔(dān)心。以下是每次關(guān)機(jī)時(shí)清除頁面文件的方法:
- 在搜索中鍵入regedit以啟動注冊表編輯器。
- 輸入此路徑:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager內(nèi)存管理
- 將 ClearPageFileAtShutDown的值更改為“1”。
- 保存更改并重新啟動設(shè)備。
應(yīng)該這樣做。請記住,您的關(guān)機(jī)過程將花費(fèi)更多時(shí)間。
9]禁用超級獲取
此 Windows 服務(wù)通過最小化啟動時(shí)間來優(yōu)化性能。它讓 Windows 管理 RAM 使用。禁用Superfetch后的生活并不方便,但如果必須的話,請這樣做。至少單獨(dú)嘗試這個(gè)來隔離問題:
- 搜索services.msc并轉(zhuǎn)到服務(wù)管理器。
- 查找“ Superfetch ”并右鍵單擊它以轉(zhuǎn)到“屬性”。
- 選擇“停止”。
- 還可以從下拉菜單中“禁用”該服務(wù)。
- 重新啟動 PC 并檢查性能是否有所改善。
如果這不起作用,請啟用 Superfetch。
10] 檢查惡意軟件
使用第三方防病毒軟件或 Windows 自帶的 Microsoft Defender 掃描并清除惡意軟件。確保更新防病毒軟件以支持您的操作系統(tǒng),以免它成為內(nèi)存泄漏的原因。
11] 修改設(shè)置
1、點(diǎn)擊左下角任務(wù)欄中的“開始”,在上方搜索框中輸入“控制面板”打開。
2、進(jìn)入到新界面后,將右上角的“查看方式”切換為“大圖標(biāo)”,接著點(diǎn)擊其中的“電源選項(xiàng)”。
3、隨后點(diǎn)擊左側(cè)欄中的“選擇電源按鈕的功能”。
4、然后點(diǎn)擊上方中的“更改當(dāng)前不可用的設(shè)置”。
5、最后找到“啟用快速啟動”,將其小方框取消勾選,并點(diǎn)擊保存修改即可。
12] 修改設(shè)置
1、也可能是顯卡驅(qū)動程序?qū)е碌膬?nèi)存泄露。
2、可以在Intel官網(wǎng)中選擇舊版的驅(qū)動下載安裝即可。
以上就是win11內(nèi)存泄露的解決方法,希望大家喜歡,請繼續(xù)關(guān)注腳本之家。
相關(guān)推薦:
Win11怎么設(shè)置虛擬內(nèi)存? Win11增加虛擬內(nèi)存的技巧
win11藍(lán)屏代碼0x0000001A怎么解決? Wi11停止代碼內(nèi)存管理解決方法
相關(guān)文章
Win11系統(tǒng)wsappx占用內(nèi)存高怎么辦 Win11系統(tǒng)wsappx占用內(nèi)存高解決方法
Win11系統(tǒng)wsappx占用內(nèi)存高怎么辦?我們在win11上打開任務(wù)管理器,可能會發(fā)現(xiàn)wsappx占用了太多內(nèi)存,導(dǎo)致電腦卡頓延遲、無法流暢運(yùn)行,這時(shí)候可以嘗試禁用掉相關(guān)服務(wù)來解決2023-12-26如何在Win11中啟用或禁用內(nèi)存壓縮? win11 23h2怎么關(guān)閉內(nèi)存壓縮的方法
如何在Win11中啟用或禁用內(nèi)存壓縮?win11很卡,想要關(guān)閉內(nèi)存壓縮,該怎么關(guān)閉呢?下面我們就來看看win11 23h2怎么關(guān)閉內(nèi)存壓縮的方法2023-12-04Antimalware Service Executable占用內(nèi)存過高怎么辦? Win11cpu占用率高
Win11怎么徹底關(guān)閉Antimalware Service Executable?后臺顯示這個(gè)程序占用cpu內(nèi)存很高,徹底關(guān)閉就能解決電腦剃齒cpu占用率高的問題,詳細(xì)請看下文介紹2023-11-03Win11新版畫圖工具新增圖層功能: 每添加 1 層內(nèi)存占用 2-4 MB
win11自帶的畫圖應(yīng)用新增了一個(gè)重要功能,就是圖層,可以添加圖層了,但是用戶每增加 1 個(gè)圖層,內(nèi)存占用就會增加 2-4 MB,詳細(xì)請看下文介紹2023-09-21Win11八月更新導(dǎo)致虛擬內(nèi)存分頁藍(lán)屏等故障匯總
Win11八月更新后,出現(xiàn)許多bug,比如藍(lán)屏“UNSUPPORTED_PROCESSOR”與“fault in nonpaged area”或者Something didn’t go as planned”,詳細(xì)請看下文介紹2023-09-07Win11虛擬內(nèi)存無法從c盤改為d盤怎么辦?無法把虛擬內(nèi)存更改到其它盤的解
最近有網(wǎng)友咨詢Win11虛擬內(nèi)存無法從c盤改為d盤怎么辦?本文就為大家?guī)砹嗽敿?xì)的解決方法,感興趣的朋友一起看看吧2023-08-08Win11如何查看內(nèi)存占用情況 Win11查看內(nèi)存占用的方法
很多小伙伴在升級到Win11系統(tǒng)之后還不清楚如何去查看內(nèi)存占用情況,那么遇到這種情況要如何解決呢?一起來了解一下吧2023-07-13TiWorker.exe內(nèi)存占用過高怎么辦? Win11 tiworker內(nèi)存占用過高解決辦法
TiWorker.exe內(nèi)存占用過高怎么辦?很多的用戶安裝了這個(gè)系統(tǒng)之后都有遇到內(nèi)存被大量占用的情況,今天我們就來看看Win11 tiworker內(nèi)存占用過高的四種解決辦法2023-07-07- 電腦通過windows工具打開圖片的時(shí)候會遇到圖片無法打開的情況,提示 “Windows 照片查看器無法顯示此圖片,因?yàn)橛?jì)算機(jī)上的可用內(nèi)存不足。請關(guān)閉一些目前沒有使用的程序或者2023-05-29
微軟 Win11 安卓子系統(tǒng) 2304 更新:可分配內(nèi)存大小
微軟 Win11 安卓子系統(tǒng) 2304 更新,本次版本更新主要添加了使用防病毒軟件進(jìn)行程序包驗(yàn)證的功能、重新分配內(nèi)存以獲得更好性能的功能、Android AppLink 支持、新的 Linux 內(nèi)2023-05-17