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 .
运行应用程序时,它为 true
,即使应用程序已打包(isPackaged
)为 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
- 在 Web Worker 中utility
- 在作为服务启动的节点进程中
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()
导致当前进程的主线程崩溃。
process.getCreationTime()
返回 number | null
- 自 Unix 纪元以来的毫秒数,如果信息不可用,则返回 null
。
指示应用程序的创建时间。时间表示为自 Unix 纪元以来的毫秒数。如果无法获取进程创建时间,则返回 null。
process.getCPUUsage()
返回 CPUUsage。
process.getHeapStatistics()
返回 Object
totalHeapSize
IntegertotalHeapSizeExecutable
IntegertotalPhysicalSize
IntegertotalAvailableSize
IntegerusedHeapSize
IntegerheapSizeLimit
IntegermallocedMemory
IntegerpeakMallocedMemory
IntegerdoesZapGarbage
boolean
返回包含 V8 堆统计信息的对象。请注意,所有统计信息均以千字节为单位报告。
process.getBlinkMemoryInfo()
返回 Object
allocated
Integer - 所有已分配对象的大小,以千字节为单位。total
Integer - 已分配的总空间,以千字节为单位。
返回包含 Blink 内存信息的对象。这对于调试渲染/DOM 相关的内存问题很有用。请注意,所有值均以千字节为单位报告。
process.getProcessMemoryInfo()
返回 Promise<ProcessMemoryInfo>
- 使用 ProcessMemoryInfo 解析。
返回一个对象,其中包含有关当前进程的内存使用统计信息。请注意,所有统计信息均以千字节为单位报告。此 API 应在应用程序准备就绪后调用。
Chromium 不为 macOS 提供 residentSet
值。这是因为 macOS 会对最近未使用的页面执行内存压缩。因此,常驻集大小值不是人们所期望的值。private
内存更能代表 macOS 上进程的实际压缩前内存使用情况。
process.getSystemMemoryInfo()
返回 Object
total
Integer - 系统可用的物理内存总量,以千字节为单位。free
Integer - 应用程序或磁盘缓存未使用的内存总量。swapTotal
Integer Windows Linux - 系统可用的交换内存总量,以千字节为单位。swapFree
Integer Windows Linux - 系统可用的空闲交换内存量,以千字节为单位。
返回一个对象,其中包含有关整个系统的内存使用统计信息。请注意,所有统计信息均以千字节为单位报告。
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()
导致当前进程的主线程挂起。
process.setFdLimit(maxDescriptors)
macOS Linux
maxDescriptors
Integer
将文件描述符软限制设置为 maxDescriptors
或操作系统硬限制,以两者中较低者为准,用于当前进程。