JavaScript使用performance實(shí)現(xiàn)查看內(nèi)存
正常情況下我們可以在控制臺(tái)中查看當(dāng)前頁面或應(yīng)用程序的內(nèi)存使用情況
瀏覽器環(huán)境中,你可以使用瀏覽器的開發(fā)者工具Memory
來查看內(nèi)存信息
如果你想在 JavaScript 中獲取內(nèi)存信息并打印到控制臺(tái),你可以使用性能 API 中的 memory
或者 measureUserAgentSpecificMemory
屬性
查看頁面內(nèi)存占用情況
console.log(performance.memory); { jsHeapSizeLimit: 4294705152 totalJSHeapSize: 102883888 usedJSHeapSize: 87997796 }
jsHeapSizeLimit
:JavaScript 堆的大小限制。
totalJSHeapSize
:JavaScript 堆的總大小。
usedJSHeapSize
:JavaScript 堆的使用大小。
查看特定對象的占用情況
在這里我已經(jīng)簡單給大家封裝了一遍
// 創(chuàng)建一個(gè)對象,用于測量其內(nèi)存消耗 var myObj = { data: 'some data' }; // 在對象上執(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(`下一次測量5 秒.`); setTimeout(this.measureMemory(obj), interval); } function measureMemory(obj) { // 測量對象的內(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打開,方便移動(dòng)端查看
注意??瀏覽器需要校驗(yàn)crossOriginIsolated
: 是一個(gè)新的安全特性,用于表示一個(gè)頁面或者一個(gè) Worker 是否啟用了跨域隔離 未配置:會(huì)在控制臺(tá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 });
正確開啟后如圖
到此這篇關(guān)于JavaScript使用performance實(shí)現(xiàn)查看內(nèi)存的文章就介紹到這了,更多相關(guān)JavaScript performance查看內(nèi)存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用layer彈窗和layui表單實(shí)現(xiàn)新增功能
最近做項(xiàng)目遇到這樣的需求使用layer在彈窗內(nèi)完成新增,成功后提示并刷新頁面,下面小編給大家?guī)砹耸褂胠ayer彈窗和layui表單做新增功能,具體實(shí)現(xiàn)代碼,參考下本文2018-08-08實(shí)例詳解ECMAScript5中新增的Array方法
這篇文章主要介紹了實(shí)例詳解ECMAScript5中新增的Array方法的相關(guān)資料,需要的朋友可以參考下2016-04-04JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀(transform應(yīng)用)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04JavaScript+Canvas實(shí)現(xiàn)繪制音頻可視化波形圖
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript和Canvas實(shí)現(xiàn)繪制音頻可視化波形圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02