JavaScript使用performance實(shí)現(xiàn)查看內(nèi)存
正常情況下我們可以在控制臺(tái)中查看當(dāng)前頁(yè)面或應(yīng)用程序的內(nèi)存使用情況
瀏覽器環(huán)境中,你可以使用瀏覽器的開(kāi)發(fā)者工具Memory來(lái)查看內(nèi)存信息
如果你想在 JavaScript 中獲取內(nèi)存信息并打印到控制臺(tái),你可以使用性能 API 中的 memory 或者 measureUserAgentSpecificMemory 屬性
查看頁(yè)面內(nèi)存占用情況
console.log(performance.memory);
{
jsHeapSizeLimit: 4294705152
totalJSHeapSize: 102883888
usedJSHeapSize: 87997796
}
jsHeapSizeLimit:JavaScript 堆的大小限制。
totalJSHeapSize:JavaScript 堆的總大小。
usedJSHeapSize:JavaScript 堆的使用大小。
查看特定對(duì)象的占用情況
在這里我已經(jīng)簡(jiǎn)單給大家封裝了一遍
// 創(chuàng)建一個(gè)對(duì)象,用于測(cè)量其內(nèi)存消耗
var myObj = { data: 'some data' };
// 在對(duì)象上執(zhí)行一些操作,增加內(nèi)存消耗
for (var i = 0; i < 100000; i++) {
myObj['property' + i] = 'value' + i;
}
if (crossOriginIsolated) {
runMemoryMeasurements(myObj)
} else {
console.error(
crossOriginIsolated + ' crossOriginIsolated\n Cross-Origin-Opener-Policy 設(shè)置為 same-origin(保護(hù)源站免受攻擊)\n Cross-Origin-Embedder-Policy 設(shè)置為 require-corp(保護(hù)源站免受侵害)'
);
}
function runMemoryMeasurements(obj) {
const interval = 5000;
console.log(`下一次測(cè)量5 秒.`);
setTimeout(this.measureMemory(obj), interval);
}
function measureMemory(obj) {
// 測(cè)量對(duì)象的內(nèi)存消耗
window.performance
.measureUserAgentSpecificMemory(obj)
.then(function (bytes) {
console.log('內(nèi)存占用:', getFileSize(bytes.bytes));
runMemoryMeasurements(obj)
});
}
function getFileSize(size) {
//把字節(jié)轉(zhuǎn)換成正常文件大小
if (!size) return '';
var num = 1024.0; //byte
if (size < num) return size + 'B';
if (size < Math.pow(num, 2)) return (size / num).toFixed(2) + 'KB'; //kb
if (size < Math.pow(num, 3))
return (size / Math.pow(num, 2)).toFixed(2) + 'MB'; //M
if (size < Math.pow(num, 4))
return (size / Math.pow(num, 3)).toFixed(2) + 'G'; //G
return (size / Math.pow(num, 4)).toFixed(2) + 'T'; //T
}
可以把vconsole打開(kāi),方便移動(dòng)端查看
注意??瀏覽器需要校驗(yàn)crossOriginIsolated: 是一個(gè)新的安全特性,用于表示一個(gè)頁(yè)面或者一個(gè) Worker 是否啟用了跨域隔離 未配置:會(huì)在控制臺(tái)提示你未開(kāi)啟

怎么開(kāi)啟呢 nginx.conf路由配置模塊添加
location /origin1 {
add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
add_header 'Cross-Origin-Opener-Policy' 'same-origin';
......
}
woker 中:
const worker = new Worker('your-worker.js', { crossOriginIsolated: true });
正確開(kāi)啟后如圖

到此這篇關(guān)于JavaScript使用performance實(shí)現(xiàn)查看內(nèi)存的文章就介紹到這了,更多相關(guān)JavaScript performance查看內(nèi)存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
document.documentElement和document.body區(qū)別介紹
body是DOM對(duì)象里的body子節(jié)點(diǎn),即body標(biāo)簽,documentElement 是整個(gè)節(jié)點(diǎn)樹(shù)的根節(jié)點(diǎn)root,詳細(xì)介紹請(qǐng)看本文,感興趣的朋友可以參考下2013-09-09
小程序測(cè)試后臺(tái)服務(wù)的方法(ngrok)
這篇文章主要介紹了小程序測(cè)試后臺(tái)服務(wù)的方法(ngrok),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
JavaScript設(shè)計(jì)模式之單例模式原理與用法實(shí)例分析
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之單例模式原理與用法,結(jié)合實(shí)例形式分析了單例模式的原理、命名空間的使用、閉包、惰性單例形式以及單例模式的基本應(yīng)用,需要的朋友可以參考下2018-07-07
javascript實(shí)現(xiàn)div的顯示和隱藏的小例子
這篇文章介紹了在JS中實(shí)現(xiàn)DIV顯示和隱藏的實(shí)例,需要的朋友可以參考一下2013-06-06
原生JS簡(jiǎn)單實(shí)現(xiàn)ajax的方法示例
這篇文章主要介紹了原生JS簡(jiǎn)單實(shí)現(xiàn)ajax的方法,結(jié)合實(shí)例形式分析了ajax的實(shí)現(xiàn)步驟與相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
gulp-htmlmin壓縮html的gulp插件實(shí)例代碼
這篇文章主要介紹了gulp-htmlmin壓縮html的gulp插件實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-06-06
js監(jiān)聽(tīng)html頁(yè)面的上下滾動(dòng)事件方法
今天小編就為大家分享一篇js監(jiān)聽(tīng)html頁(yè)面的上下滾動(dòng)事件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09

