我从纯技术的角度来说下这个事情
通过一些监控工具观测到应用I/O 读写量大、频率高,这个是因为 Electron 基于 Chromium 内核的标准架构表现,非应用层异常或违规磁盘操作。
技术原理是这样
如果应用采用是Electron 架构,进程间依赖Mojo IPC 管道完成渲染、调度、数据传输,依托管道实现低延迟通信。
I/O 监控工具的计数规则,会将管道句柄的 ReadFile/WriteFile 系统调用统计为 I/O 读写计数,此类操作属于内核态内存级进程间交互,无实际物理磁盘落盘行为。
说一下AppReadWriteCounter这款软件
AppReadWriteCounter 基于 Windows ETW(Event Tracing for Windows)机制捕获进程的文件 I/O 事件,Windows 内核将管道句柄与文件句柄统一管理,导致监控工具无法区分 “物理文件 I/O” 与 “IPC 管道 / 共享内存句柄操作”。
同时如果软件界面上有动图,一直在动,那AppReadWriteCounter也会疯狂读取动图渲染属于高频图形渲染场景,内核需通过 Mojo 管道在渲染进程、GPU 进程、主进程间持续传输渲染指令与帧数据。
下面是Discord和QQ在播放动图,AppReadWriteCounter对这两款软件的表现,能直观的表现出来读写很大,实际上是因为动图。

