进程

进程程对象的扩展。

进程:进程,渲染器进程

Electron的process对象是从Node.js process对象扩展的 。它添加了以下事件,属性和方法:

沙盒

在沙盒渲染器中,process对象仅包含API的子集:

  • crash()
  • hang()
  • getCreationTime()
  • getHeapStatistics()
  • getBlinkMemoryInfo()
  • getProcessMemoryInfo()
  • getSystemMemoryInfo()
  • getSystemVersion()
  • getCPUUsage()
  • getIOCounters()
  • argv
  • execPath
  • env
  • pid
  • arch
  • platform
  • sandboxed
  • type
  • version
  • versions
  • mas
  • windowsStore

事件:“已加载”

当Electron其内部初始化脚本加载完成,并开始加载网页或主脚本时发出。

当节点集成关闭时,预加载脚本可以使用它将已删除的Node全局符号添加回全局范围:

// preload.js
const _setImmediate = setImmediate
const _clearImmediate = clearImmediate
process.once('loaded', () => {
  global.setImmediate = _setImmediate
  global.clearImmediate = _clearImmediate
})

属性

process.defaultApp 只读

Boolean类型。通过将app作为参数传递给默认应用程序来启动app时,位于主进程中此属性true,否则为undefined

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.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进程

process.versions.chrome 只读

String类型。Chrome的版本字符串。

process.versions.electron 只读

String类型。代表电子的版本字符串。

process.windowsStore 只读

Boolean类型。如果该应用程序作为Windows Store应用程序(appx)运行,则此属性为true,否则为undefined

方法

process对象具有以下方法:

process.crash()

导致当前进程的主线程崩溃。

process.getCreationTime()

返回Number | null-自纪元以来的毫秒数,或者null如果信息不可用

指示应用程序的创建时间。时间表示为从纪元以来的毫秒数。如果无法获得进程创建时间,则返回null。

process.getHeapStatistics()

返回 Object

  • totalHeapSize 整数
  • totalHeapSizeExecutable 整数
  • totalPhysicalSize 整数
  • totalAvailableSize 整数
  • usedHeapSize 整数
  • heapSizeLimit 整数
  • mallocedMemory 整数
  • peakMallocedMemory 整数
  • doesZapGarbage 布尔型

返回具有V8堆统计信息的对象。请注意,所有统计信息均以千字节为单位报告。

process.getBlinkMemoryInfo()

返回Object

  • allocated 整数-所有已分配对象的大小,以千字节为单位。
  • marked 整数-所有标记对象的大小,以千字节为单位。
  • total 整数-分配的总空间(以千字节为单位)。

返回带有Blink内存信息的对象。对于调试与渲染/ DOM相关的内存问题,它可能很有用。请注意,所有值均以千字节为单位报告。

process.getProcessMemoryInfo()

返回Promise<ProcessMemoryInfo>-使用ProcessMemoryInfo解析

返回一个对象,该对象提供有关当前进程的内存使用情况统计信息。请注意,所有统计信息均以千字节为单位报告。应用就绪后应调用此api。

Chromium无法residentSet为macOS提供价值。这是因为macOS对最近未使用的页面执行内存压缩。结果,residentSet 大小值不是人们期望的值。private内存更能代表macOS上进程实际的压缩前内存使用情况。

process.getSystemMemoryInfo()

返回Object

  • total 整数-系统可用的物理内存总量(以千字节为单位)。
  • free 整数-应用程序或磁盘缓存未使用的内存总量。
  • swapTotal整数Windows Linux-系统可用的交换内存总量(以千字节为单位)。
  • swapFree整数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'

注意:它会返回实际的操作系统版本,而不是macOS上的内核版本os.release()

process.takeHeapSnapshot(filePath)

  • filePath 字符串-输出文件的路径。

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

拍摄V8堆快照并将其保存到filePath

process.hang()

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

process.setFdLimit(maxDescriptors) macOS Linux

  • maxDescriptors 整数

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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐