process
process 物件的擴充功能。
Electron 的 process
物件是從 Node.js process
物件 擴充而來。它新增了以下事件、屬性和方法
沙盒
在沙盒化的渲染器中,process
物件僅包含 API 的子集
crash()
hang()
getCreationTime()
getHeapStatistics()
getBlinkMemoryInfo()
getProcessMemoryInfo()
getSystemMemoryInfo()
getSystemVersion()
getCPUUsage()
uptime()
argv
execPath
env
pid
arch
platform
sandboxed (沙盒化)
contextIsolated (上下文隔離)
type (類型)
version (版本)
versions (版本)
mas
windowsStore
contextId
事件
事件:'loaded'
當 Electron 已載入其內部初始化腳本並開始載入網頁或主腳本時發出。
屬性
process.defaultApp
唯讀
一個 boolean
值。當應用程式透過作為參數傳遞給預設的 Electron 可執行檔啟動時,此屬性在主程序中為 true
,否則為 undefined
。例如,當使用 electron .
執行應用程式時,即使應用程式已封裝 (isPackaged
) 為 true
,它也為 true
。這可用於判斷需要從 process.argv
中切掉多少個參數。
process.isMainFrame
唯讀
一個 boolean
值,當前渲染器上下文為「main」渲染器框架時為 true
。如果您想要當前框架的 ID,您應該使用 webFrame.routingId
。
process.mas
唯讀
一個 boolean
值。對於 Mac App Store 版本,此屬性為 true
,對於其他版本則為 undefined
。
process.noAsar
一個 boolean
值,用於控制應用程式內部的 ASAR 支援。將此設定為 true
將停用 Node 內建模組中對 asar
封存檔的支援。
process.noDeprecation
一個 boolean
值,用於控制是否將棄用警告列印到 stderr
。將此設定為 true
將靜音棄用警告。此屬性用於代替 --no-deprecation
命令列標記。
process.resourcesPath
唯讀
一個 string
值,表示資源目錄的路徑。
process.sandboxed
唯讀
一個 boolean
值。當渲染器程序為沙盒化時,此屬性為 true
,否則為 undefined
。
process.contextIsolated
唯讀
一個 boolean
值,表示當前渲染器上下文是否已啟用 contextIsolation
。在主程序中為 undefined
。
process.throwDeprecation
一個 boolean
值,用於控制是否將棄用警告作為例外拋出。將此設定為 true
將為棄用拋出錯誤。此屬性用於代替 --throw-deprecation
命令列標記。
process.traceDeprecation
一個 boolean
值,用於控制列印到 stderr
的棄用是否包含其堆疊追蹤。將此設定為 true
將為棄用列印堆疊追蹤。此屬性用於代替 --trace-deprecation
命令列標記。
process.traceProcessWarnings
一個 boolean
值,用於控制列印到 stderr
的程序警告是否包含其堆疊追蹤。將此設定為 true
將為程序警告(包括棄用)列印堆疊追蹤。此屬性用於代替 --trace-warnings
命令列標記。
process.type
唯讀
一個 string
值,表示當前程序的類型,可以是
browser
- 主程序renderer
- 渲染器程序service-worker
- 在 service worker 中worker
- 在 web worker 中utility
- 在作為服務啟動的 node 程序中
process.versions.chrome
唯讀
一個 string
值,表示 Chrome 的版本字串。
process.versions.electron
唯讀
一個 string
值,表示 Electron 的版本字串。
process.windowsStore
唯讀
一個 boolean
值。如果應用程式作為 Windows Store 應用程式 (appx) 執行,則此屬性為 true
,否則為 undefined
。
process.contextId
唯讀
一個 string
值(可選),表示當前 JavaScript 上下文的全域唯一 ID。每個框架都有自己的 JavaScript 上下文。當啟用 contextIsolation 時,隔離的世界也有一個單獨的 JavaScript 上下文。此屬性僅在渲染器程序中可用。
process.parentPort
如果這是 UtilityProcess
,則為 Electron.ParentPort
屬性(否則為 null
),允許與父程序通訊。
方法
process
物件具有以下方法
process.crash()
導致當前程序的 Main Thread(主執行緒)崩潰。
process.getCreationTime()
傳回 number | null
- 自 epoch 以來的毫秒數,如果資訊不可用,則傳回 null
指示應用程式的建立時間。時間以自 epoch 以來的毫秒數表示。如果無法取得程序建立時間,則傳回 null。
process.getCPUUsage()
傳回 CPUUsage
process.getHeapStatistics()
傳回 Object
totalHeapSize
Integer (整數)totalHeapSizeExecutable
Integer (整數)totalPhysicalSize
Integer (整數)totalAvailableSize
Integer (整數)usedHeapSize
Integer (整數)heapSizeLimit
Integer (整數)mallocedMemory
Integer (整數)peakMallocedMemory
Integer (整數)doesZapGarbage
boolean (布林值)
傳回具有 V8 堆積統計資訊的物件。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。
process.getBlinkMemoryInfo()
傳回 Object
allocated
Integer (整數) - 以 Kilobytes (千位元組) 為單位表示的所有已配置物件的大小。total
Integer (整數) - 以 Kilobytes (千位元組) 為單位表示的總配置空間。
傳回具有 Blink 記憶體資訊的物件。它對於偵錯渲染/DOM 相關的記憶體問題很有用。請注意,所有值均以 Kilobytes (千位元組) 為單位報告。
process.getProcessMemoryInfo()
傳回 Promise<ProcessMemoryInfo>
- 解析為 ProcessMemoryInfo
傳回一個物件,其中包含有關當前程序的記憶體使用統計資訊。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。此 API 應在應用程式準備就緒後呼叫。
Chromium 不為 macOS 提供 residentSet
值。這是因為 macOS 會對最近未使用的頁面執行記憶體內壓縮。因此,resident set size 值並不如預期。private
記憶體更能代表 macOS 上程序的實際預壓縮記憶體使用量。
process.getSystemMemoryInfo()
傳回 Object
total
Integer (整數) - 系統可用的實體記憶體總量,以 Kilobytes (千位元組) 為單位。free
Integer (整數) - 應用程式或磁碟快取未使用的記憶體總量。swapTotal
Integer (整數) Windows Linux - 系統可用的交換記憶體總量,以 Kilobytes (千位元組) 為單位。swapFree
Integer (整數) Windows Linux - 系統可用的可用交換記憶體量,以 Kilobytes (千位元組) 為單位。
傳回一個物件,其中包含有關整個系統的記憶體使用統計資訊。請注意,所有統計資訊均以 Kilobytes (千位元組) 為單位報告。
process.getSystemVersion()
傳回 string
- 主機作業系統的版本。
範例
const version = process.getSystemVersion()
console.log(version)
// On macOS -> '10.13.6'
// On Windows -> '10.0.17763'
// On Linux -> '4.15.0-45-generic'
注意: 與 os.release()
不同,它在 macOS 上傳回實際的作業系統版本,而不是核心版本。
process.takeHeapSnapshot(filePath)
filePath
string - 輸出檔案的路徑。
傳回 boolean
- 指示是否已成功建立快照。
拍攝 V8 堆積快照並將其儲存到 filePath
。
process.hang()
導致當前程序的 Main Thread(主執行緒)停止回應。
process.setFdLimit(maxDescriptors)
macOS Linux
maxDescriptors
Integer (整數)
將檔案描述符軟限制設定為 maxDescriptors
或 OS 硬限制,以較低者為準用於當前程序。