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
,當目前渲染器上下文為「主要」渲染器框架時,為 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
- 渲染器進程worker
- 在網頁工作者中utility
- 在以服務形式啟動的節點進程中
process.versions.chrome
唯讀
一個 string
,表示 Chrome 的版本字串。
process.versions.electron
唯讀
一個 string
,表示 Electron 的版本字串。
process.windowsStore
唯讀
一個 boolean
。如果應用程式做為 Windows 市集應用程式 (appx) 執行,此屬性為 true
,否則為 undefined
。
process.contextId
唯讀
一個 string
(選用),表示目前 JavaScript 上下文的全球唯一 ID。每個框架都有自己的 JavaScript 上下文。當啟用 contextIsolation 時,隔離的世界也有一個獨立的 JavaScript 上下文。此屬性僅在渲染器進程中可用。
process.parentPort
如果這是 UtilityProcess
,則為 Electron.ParentPort
屬性(否則為 null
),可允許與父進程進行通訊。
方法
process
物件具有以下方法
process.crash()
導致目前進程的主要執行緒崩潰。
process.getCreationTime()
傳回 number | null
- 自 epoch 以來的毫秒數,如果資訊不可用,則傳回 null
表示應用程式的建立時間。時間表示為自 epoch 以來的毫秒數。如果無法取得進程建立時間,則傳回 null。
process.getCPUUsage()
傳回 CPUUsage
process.getHeapStatistics()
傳回 Object
totalHeapSize
整數totalHeapSizeExecutable
整數totalPhysicalSize
整數totalAvailableSize
整數usedHeapSize
整數heapSizeLimit
整數mallocedMemory
整數peakMallocedMemory
整數doesZapGarbage
布林值
傳回包含 V8 堆積統計資訊的物件。請注意,所有統計資訊皆以 KB 為單位回報。
process.getBlinkMemoryInfo()
傳回 Object
allocated
整數 - 所有配置物件的大小,以 KB 為單位。total
整數 - 配置的總空間,以 KB 為單位。
傳回包含 Blink 記憶體資訊的物件。這對於除錯與呈現/DOM 相關的記憶體問題很有用。請注意,所有值皆以 KB 為單位回報。
process.getProcessMemoryInfo()
傳回 Promise<ProcessMemoryInfo>
- 使用 ProcessMemoryInfo 解析
返回一個物件,其中包含目前程序的記憶體使用統計資訊。請注意,所有統計資訊均以 KB 為單位回報。此 API 應在應用程式準備就緒後呼叫。
Chromium 不為 macOS 提供 residentSet
值。這是因為 macOS 會對最近未使用的頁面執行記憶體內壓縮。因此,常駐集大小值並非人們所預期的。private
記憶體更能代表 macOS 上程序實際壓縮前的記憶體使用量。
process.getSystemMemoryInfo()
傳回 Object
total
整數 - 系統可用的實體記憶體總量,以 KB 為單位。free
整數 - 未被應用程式或磁碟快取使用的記憶體總量。swapTotal
整數 Windows Linux - 系統可用的交換記憶體總量,以 KB 為單位。swapFree
整數 Windows Linux - 系統可用的空閒交換記憶體量,以 KB 為單位。
返回一個物件,其中包含整個系統的記憶體使用統計資訊。請注意,所有統計資訊均以 KB 為單位回報。
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
字串 - 輸出檔案的路徑。
返回 boolean
- 指示快照是否已成功建立。
取得 V8 堆積快照並將其儲存到 filePath
。
process.hang()
導致目前程序的主執行緒掛起。
process.setFdLimit(maxDescriptors)
macOS Linux
maxDescriptors
整數
將檔案描述符軟限制設定為 maxDescriptors
或作業系統硬限制,以較低者為準(針對目前程序)。