本文介绍:进程
进展的相关属性和扩展管理
Electron 中的 process 对象是Node.js的process 对象 的扩展。
事件
事件: 'loaded'
触发:Electron加载其内部预置脚本并开始载入网页或主脚本时
当Node关闭时,预置脚本可以用loaded将 原本已删除的Node全局符号 重新添加回 全局范围:
// 预置脚本
const _setImmediate = setImmediate
const _clearImmediate = clearImmediate
process.once('loaded', () => {
  global.setImmediate = _setImmediate
  global.clearImmediate = _clearImmediate
})
属性
process.noAsar
用途:一个用于控制应用程序内的ASAR支持的
Boolean,设置为true可禁用Node的内置模块中的asar
process.type
用途:返回当前当前进程类型(
String)
返回值为 browser (即主进程) 或 renderer(即渲染进程)。
process.versions.electron
用途:返回Electron的版本号(
String)*
process.versions.chrome
用途:返回Chrome的版本号(
String)*
process.resourcesPath
用途:返回资源目录的路径(
String)*
process.mas
用途:判断是否Mac App Store app(
Boolean)*
作为Mac App Store应用(app)运行,该属性为 true, 否则为 undefined。
process.windowsStore
用途:判断是否Windows Store app(
Boolean)
作为Windows应用商店应用(appx)运行,则此属性为 true, 否则为 undefined。
process.defaultApp
用途:判断是否作为参数传递到默认应用程序启动(
Boolean)
当 app 在启动时,被作为参数传递给默认应用程序,在主进程中该属性为 true, 其他情况均为 undefined。
方法
process.crash()
用途:使当前进程的主线程崩溃
process.hang()
用途:使当前进程的主线程挂起
process.setFdLimit(maxDescriptors) macOS Linux
用途:将文件描述符软限制设置为
maxDescriptors或OS硬限制,以当前进程的较低者为准
- maxDescriptorsInteger
process.getProcessMemoryInfo()
用途:获取有关当前进程内存使用统计信息的对象(
Object)
- workingSetSizeInteger - 当前固定到实际物理RAM的内存量。
- peakWorkingSetSizeInteger - 已经固定到实际物理RAM的最大内存量。
- privateBytesInteger - 其他进程不共享的内存量,例如JS堆或HTML内容。
- sharedBytesInteger - 进程之间共享的内存量,通常是Electron代码本身消耗的内存
请注意,所有统计信息都以千字节(KB)为单位。
process.getSystemMemoryInfo()
返回 Object:
- totalInteger - 系统可用的物理内存总量。
- freeInteger - 应用程序或磁盘缓存未使用的内存总量。
- swapTotalInteger - 系统可用的交换内存总量。 Windows Linux
- swapFreeInteger - 系统可用的交换内存的自由量。 Windows Linux
请注意,所有统计信息都以千字节(KB)为单位。
process.getCPUUsage()
用途:获取处理器使用率(
CPUUsage)
返回:
- CPUUsageCPUUsage
process.getIOCounters() Windows Linux
用途:获取进程IO占用值(
CPUUsage)
返回:
- IOCountersIOCounters