进程¶
对 process 对象的扩展。
Electron 的 process 对象扩展自 Node.js process 对象。
它添加了以下事件、属性和方法:
沙箱¶
在沙箱化的渲染进程中,process 对象仅包含以下 API 子集:
crash()hang()getCreationTime()getHeapStatistics()getBlinkMemoryInfo()getProcessMemoryInfo()getSystemMemoryInfo()getSystemVersion()getCPUUsage()uptime()argvexecPathenvpidarchplatformsandboxedcontextIsolatedtypeversionversionsmaswindowsStorecontextId
事件¶
事件:'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- 渲染进程service-worker- 在 service worker 中worker- 在 web worker 中utility- 在作为服务启动的 node 进程中
process.versions.chrome 只读¶
一个 string,表示 Chrome 的版本字符串。
process.versions.electron 只读¶
一个 string,表示 Electron 的版本字符串。
process.windowsStore 只读¶
一个 boolean。如果应用作为 MSIX 包(包括 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 - 自纪元以来的毫秒数,如果信息不可用则为 null
指示应用的创建时间。 时间表示为自纪元以来的毫秒数。如果无法获取进程创建时间,则返回 null。
process.getCPUUsage()¶
返回 CPUUsage - 调用此方法的进程的 CPU 使用情况。
[!NOTE]
percentCPUUsage和idleWakeupsPerSecond是自本进程中上一次调用process.getCPUUsage()以来的平均值,每次调用都会开始一个新的 测量区间。进程中的每个调用者共享该区间。有关详细信息,请参阅CPUUsage。
process.getHeapStatistics()¶
返回 Object:
totalHeapSize整数totalHeapSizeExecutable整数totalPhysicalSize整数totalAvailableSize整数usedHeapSize整数heapSizeLimit整数mallocedMemory整数peakMallocedMemory整数doesZapGarbage布尔值
返回一个包含 V8 堆统计信息的对象。注意,所有统计信息均以千字节为单位报告。
process.getBlinkMemoryInfo()¶
返回 Object:
allocated整数 - 所有已分配对象的千字节大小。total整数 - 已分配空间的总千字节数。
返回包含 Blink 内存信息的对象。 可用于调试与渲染 / DOM 相关的内存问题。 注意,所有值均以千字节为单位报告。
process.getProcessMemoryInfo()¶
返回 Promise<ProcessMemoryInfo> - 解析为 ProcessMemoryInfo
返回一个提供当前进程内存使用统计信息的对象。注意,所有统计信息均以千字节为单位报告。此 API 应在应用就绪后调用。
Chromium 不会为 macOS 提供 residentSet 值。这是因为 macOS 会对最近未使用的页面执行内存压缩。因此,常驻集大小值并非预期值。在 macOS 上,private 内存更能代表进程压缩前的实际内存使用情况。
process.getSystemMemoryInfo()¶
返回 Object:
totalInteger - 系统可用的物理内存总量,以千字节为单位。freeInteger - 未被应用程序或磁盘缓存使用的内存总量。availableInteger Linux - 内核对无需交换即可用于分配的内存量的估计,来自/proc/meminfo中的MemAvailable。在 Linux 上,请将其用作内存压力信号;此处的free是MemFree,它不包括页面缓存和其他可回收内存。fileBackedInteger macOS - 当前已换出到存储的内存量。包括文件缓存、网络缓冲区和其他系统服务占用的内存。purgeableInteger macOS - 被标记为“purgeable”的内存量。如果内存压力增加,系统可以回收它。swapTotalInteger Windows Linux - 系统可用的交换内存总量,以千字节为单位。swapFreeInteger 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'
[!NOTE] 在 macOS 上,它返回实际操作系统版本,而不是内核版本,这与
os.release()不同。
process.takeHeapSnapshot(filePath)¶
filePathstring - 输出文件的路径。
返回 boolean - 指示快照是否成功创建。
获取 V8 堆快照并将其保存到 filePath。
process.hang()¶
使当前进程的主线程挂起。
process.setFdLimit(maxDescriptors) macOS Linux¶
maxDescriptorsInteger
将当前进程的文件描述符软限制设置为 maxDescriptors 或操作系统硬限制中较低的值。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron