跳到主要内容

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 - 渲染进程
  • service-worker - 在 Service Worker 中
  • worker - 在 Web Worker 中
  • utility - 作为服务启动的 Node 进程中

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 (否则为 null),则此属性为 Electron.ParentPort 类型,允许与父进程通信。

方法

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 堆统计信息的对象。请注意,所有统计信息均以千字节 (Kilobytes) 为单位报告。

process.getBlinkMemoryInfo()

返回 Object

  • allocated 整型 - 所有已分配对象的大小,单位为千字节。
  • total 整型 - 总已分配空间,单位为千字节。

返回一个包含 Blink 内存信息的对象。这对于调试渲染/DOM 相关的内存问题很有用。请注意,所有值均以千字节 (Kilobytes) 为单位报告。

process.getProcessMemoryInfo()

返回 Promise<ProcessMemoryInfo> - 解析为 ProcessMemoryInfo

返回一个对象,提供当前进程的内存使用统计信息。请注意,所有统计信息均以千字节 (Kilobytes) 为单位报告。此 API 应在应用程序准备就绪后调用。

Chromium 不为 macOS 提供 residentSet 值。这是因为 macOS 会对最近未使用的页面执行内存压缩。因此,常驻集大小值并非预期。private 内存更能代表 macOS 上进程实际的压缩前内存使用情况。

process.getSystemMemoryInfo()

返回 Object

  • total 整型 - 系统可用的物理内存总量,单位为千字节。
  • free 整型 - 未被应用程序或磁盘缓存使用的内存总量。
  • swapTotal 整型 Windows Linux - 系统可用的交换内存总量,单位为千字节。
  • swapFree 整型 Windows Linux - 系统可用的空闲交换内存量,单位为千字节。

返回一个对象,提供整个系统的内存使用统计信息。请注意,所有统计信息均以千字节 (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 字符串 - 输出文件路径。

返回 boolean - 指示快照是否成功创建。

拍摄 V8 堆快照并保存到 filePath

process.hang()

导致当前进程的主线程挂起。

process.setFdLimit(maxDescriptors) macOS Linux

  • maxDescriptors 整型

将当前进程的文件描述符软限制设置为 maxDescriptors 或操作系统硬限制中的较低者。