詳解Nodejs內(nèi)存治理-創(chuàng)新互聯(lián)

s運行的宿主環(huán)境不同,相應(yīng)的對內(nèi)存治理的要求也不一樣,當(dāng)宿主環(huán)境是瀏覽器時,由于網(wǎng)頁的運行時間短,且只運行在用戶的機器上(相當(dāng)于分布式),即使內(nèi)存使用過多或者存在一定的內(nèi)存泄漏,也并不會對終端用戶產(chǎn)生太大的影響。當(dāng)宿主環(huán)境編程服務(wù)器(Node)時,情況就大不相同了,本身代碼運行在固定的幾臺機器(集中式)上,而且運行的時間是長時間運行,一旦內(nèi)存治理不好出現(xiàn)了內(nèi)存膨脹甚至是內(nèi)存泄漏的情況的話,就會出現(xiàn)服務(wù)器端響應(yīng)時間變長甚至是服務(wù)crash的情況。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的北海街道網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Nodejs是基于V8構(gòu)建的,所以在Node中使用的JavaScript對象基本上(Buffer就不是)都是通過V8來進(jìn)行分配和管理的。V8在占用內(nèi)存大小上做了限制(64位操作系統(tǒng),單個Node進(jìn)程可使用的大堆內(nèi)存大小約為1.5GB)。即使服務(wù)器的內(nèi)存很大,但是由于V8的這種限制,導(dǎo)致Node無法充分利用服務(wù)器的資源。即便如此,為什么V8要做這樣的限制呢?做這樣限制的原因其實是與垃圾回收機制相關(guān),以1.5GB的垃圾回收堆內(nèi)存堆為例,V8做一次小的垃圾回收需要50ms以上,做一次全量的垃圾回收甚至要1s以上,要知道垃圾回收過程中JavaScript線程是要處于暫停執(zhí)行的狀態(tài),太長的暫行時間對于后端服務(wù)的性能是會產(chǎn)生較大影響的,所以出于這方面考慮,V8對堆內(nèi)存做了限制。即便如此,V8還是提供了可以自定義堆內(nèi)存大小的方式(--max-old-pace-size),old-space代表老生代、new-space代表新生代。

node --max-old-space-size=xxx index.js //單位為MB
// 之前還可以通過-max-new-space-size來定義新生代堆大小,現(xiàn)在已經(jīng)不可以了

本文題目:詳解Nodejs內(nèi)存治理-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://muchs.cn/article48/ddjhhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作