在查看多進(jìn)程文檔的時(shí)候看到一段描述,os.fork()或者mutiprocess的創(chuàng)建的子進(jìn)程和主進(jìn)程的內(nèi)存存在copy on write機(jī)制,也就是說子進(jìn)程會(huì)復(fù)制主進(jìn)程的內(nèi)存。
因?yàn)榭吹降奈臋n是在linux上,所以在windows上測了下。
在主進(jìn)程中讀入一個(gè)較大的文檔再創(chuàng)建進(jìn)程,和直接創(chuàng)建子進(jìn)程。
比較后,僅其中一個(gè)進(jìn)程內(nèi)存占用變大。
請(qǐng)問,在windows中 python創(chuàng)建子進(jìn)程是否會(huì)拷貝主進(jìn)程的內(nèi)存?如果會(huì)拷貝是在哪個(gè)步驟出現(xiàn),建立子進(jìn)程,還是啟動(dòng)子進(jìn)程,或者是copy on write?有那些書比較詳細(xì)系統(tǒng)的說明python的各種使用?
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
寫時(shí)復(fù)制(COW)
只是對(duì)于fork
實(shí)現(xiàn)而言, 但是在windows
是直接CreateProcess
, 應(yīng)該是不會(huì)有這個(gè)過程, 具體可以谷歌下CreateProcess
的原理和實(shí)現(xiàn), 也能參考下面的鏈接:
windows下創(chuàng)建進(jìn)程,CreateProcess()詳解及用法