电脑无法将请求数据放入内存-(电脑无法将请求数据放入内存卡)
一 內(nèi)存溢出
什么是內(nèi)存溢出內(nèi)存溢出(Out Of Memory,簡稱OOM)是指應(yīng)用系統(tǒng)中存在無法回收的內(nèi)存或使用的內(nèi)存過多,最終使得程序運(yùn)行要用到的內(nèi)存大于能提供的最大內(nèi)存。此時程序就運(yùn)行不了,系統(tǒng)會提示內(nèi)存溢出,有時候會自動關(guān)閉軟件,重啟電腦或者軟件后釋放掉一部分內(nèi)存又可以正常運(yùn)行該軟件,而由系統(tǒng)配置、數(shù)據(jù)流、用戶代碼等原因而導(dǎo)致的內(nèi)存溢出錯誤,即使用戶重新執(zhí)行任務(wù)依然無法避免。比方說連續(xù)請求數(shù)據(jù)很多次,會快速占滿內(nèi)存造成內(nèi)存溢出,瀏覽器卡死。
二 內(nèi)存泄露
什么是內(nèi)存泄露內(nèi)存泄漏(Memory Leak)是指程序中已動態(tài)分配的堆內(nèi)存由于某種原因程序未釋放或無法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速度減慢甚至系統(tǒng)崩潰等嚴(yán)重后果。
內(nèi)存泄露的原因意外的全局變量:由于 js 對未聲明變量的處理方式是在全局對象上創(chuàng)建該變量的引用。如果在瀏覽器中,全局對象就是 window 對象。變量在窗口關(guān)閉或重新刷新頁面之前都不會被釋放,如果未聲明的變量緩存大量的數(shù)據(jù),就會導(dǎo)致內(nèi)存泄露。==》》解決方法:盡量減少創(chuàng)建全局變量。
<template> <div id="home">這里是首頁</div></template><script> export default { mounted() { window.test = { // 此處在全局window對象中引用了本頁面的dom對象 name: 'home', node: document.getElementById('home'), } }, }</script>解決方法:在頁面卸載的時候順便處理掉該引用destroyed () { window.test = null // 頁面卸載的時候解除引用 }
監(jiān)聽在 window/body 等事件沒有解綁:特別注意 window.addEventListener 之類的監(jiān)聽
<template> <div id="home">這里是首頁</div></template><script>export default { mounted () { window.addEventListener('resize', this.func) // window對象引用了home頁面的方法 }}</script>解決方法:在頁面銷毀的時候,順便解除引用,釋放內(nèi)存beforeDestroy () { window.removeEventListener('resize', this.func)}
閉包引起的內(nèi)存泄漏:由于閉包可以讀取函數(shù)內(nèi)部的變量,然后讓這些變量始終保存在內(nèi)存中。如果在使用結(jié)束后沒有將局部變量清除,就可能導(dǎo)致內(nèi)存泄露
被遺忘的定時器或者回調(diào):定時器中有 dom 的引用,即使 dom 刪除了,但是定時器還在,所以內(nèi)存中還是有這個 dom。手動刪除定時器和 dom,removeEventListener 移除事件監(jiān)聽
總結(jié)
以上是生活随笔為你收集整理的电脑无法将请求数据放入内存-(电脑无法将请求数据放入内存卡)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装系统u盘镜像文件什么-(镜像文件在u
- 下一篇: win10引导修复uefi-()