第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)您刪除由 nodejs 中的 fs 模塊作為 writeStream 打開(kāi)的文件時(shí)會(huì)發(fā)生什么?

當(dāng)您刪除由 nodejs 中的 fs 模塊作為 writeStream 打開(kāi)的文件時(shí)會(huì)發(fā)生什么?

千萬(wàn)里不及你 2022-06-16 17:05:34
我正在下載一些文件并將其寫(xiě)入一個(gè)以 writeStream 打開(kāi)的文件,但是當(dāng)我嘗試刪除它時(shí),它被刪除了,但 fs 仍在做它的工作,但無(wú)處可寫(xiě)......那個(gè)緩沖區(qū)去哪兒了?當(dāng)我刪除它正在寫(xiě)入的那個(gè)文件時(shí)
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您使用的是 UN*Xy 操作系統(tǒng),則刪除的文件將繼續(xù)存在,直到所有打開(kāi)的文件描述符都關(guān)閉。它存在,但沒(méi)有名字。

如果指向的文件被移動(dòng)或刪除,Linux 上打開(kāi)的文件句柄會(huì)發(fā)生什么”給出了 Linux 的詳細(xì)信息。


查看完整回答
反對(duì) 回復(fù) 2022-06-16
?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

我認(rèn)為一般的答案是 JS 只是將寫(xiě)入數(shù)據(jù)塊保留在堆中,并在其垃圾收集機(jī)制下在適當(dāng)?shù)臅r(shí)候釋放它們。

寫(xiě)入數(shù)據(jù)塊可能是一種類(lèi)型<string> | <Buffer> | <Uint8Array> ...,也許你想看看 API Buffer.allocUnsafeSlow(size),它提到:

當(dāng)使用 Buffer.allocUnsafe() 分配新的 Buffer 實(shí)例時(shí),4KB 以下的分配是從單個(gè)預(yù)分配的 Buffer 中切片的。這允許應(yīng)用程序避免創(chuàng)建許多單獨(dú)分配的 Buffer 實(shí)例的垃圾收集開(kāi)銷(xiāo)。

根據(jù)這一段,您可以通過(guò)另一個(gè)方法Buffer.alloc()在 Node 引擎的垃圾收集下推斷為Buffer(這是我上面提到的類(lèi)型之一)分配內(nèi)存。

JS Object 的內(nèi)存處理在堆中。createStream必須先打開(kāi)dest文件的數(shù)據(jù)并將其加載到堆/內(nèi)存中,即使是這樣的方法,writeStream.write()也不是直接對(duì)文件/磁盤(pán)做I/O,它必須在內(nèi)存中逐塊處理數(shù)據(jù)首先,然后用最少的次數(shù)將其寫(xiě)入磁盤(pán),所以當(dāng)dest文件沒(méi)有了時(shí),可能這種方法的做法只是將這些數(shù)據(jù)塊保留在堆中,然后看看什么時(shí)候釋放它們的好時(shí)機(jī)。

與dest文件仍然存在的情況相比,我認(rèn)為沒(méi)有太大區(qū)別,它最終會(huì)為那些數(shù)據(jù)清理內(nèi)存。

如果您想了解更多關(guān)于 Node 引擎中的垃圾收集:a-tour-of-v8-garbage-collection


查看完整回答
反對(duì) 回復(fù) 2022-06-16
  • 2 回答
  • 0 關(guān)注
  • 124 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)