目录

守护进程

守护进程是作为后台进程运行而不是在交互式用户的直接控制下运行的计算机程序。Hvigor守护进程是一个持续存在的后台进程,可以减少运行构建所需的时间。

了解守护进程

Hvigor客户端发送Daemon构建信息,如命令行参数、工程目录和环境变量等,以便于运行构建。客户端和守护进程之间的通信通过本地套接字进行连接,正在运行的守护进程最多开启8个,状态为非停止或中断的守护进程最多开启6个。

启用或关闭守护进程

Hvigor默认启用守护进程,您也可以通过以下几种方式来控制是否启用守护进程:

设置守护进程内存

守护进程最大的老生代内存默认是8192MB,对绝大多数构建来说已经足够了。如果您想自定义守护进程最大的老生代内存,可以通过以下两种方式修改,建议您参考本地剩余内存进行调整设置,其中命令行方式优先级高于hvigor-config.json5配置文件。

守护进程新生代内存最大的半空间大小默认是16MB,通过设置最大的半空间大小,可以改变Node.js的垃圾收集频率,进而影响性能,同时也会改变消耗的内存大小。可以通过以下两种方式修改,其中命令行方式优先级高于hvigor-config.json5配置文件。

该功能从DevEco Studio 5.1.0 Release版本开始支持。

设置守护进程最大空闲时长

守护进程最大空闲时长默认是3小时,从最后一次构建任务完成开始计算,超过3小时则守护进程退出。从26.0.0版本开始,支持自定义守护进程最大空闲时长,可以通过以下两种方式修改,其中命令行方式优先级高于hvigor-config.json5配置文件。

检查守护进程状态

如果您想获取正在运行的守护进程及其状态的列表,可以使用以下命令查看:

hvigorw --status-daemon
> hvigor PID    STATUS  PORT    ROOT_PATH
> hvigor 11072  idle    45001   D:\Demo1
> hvigor 18836  stopped 45000   D:\Demo2

守护进程状态

状态描述

idle

闲置

half_busy

半忙碌

busy

忙碌

canceled

取消

stopReq

停止请求

stopped

停止

broken

中断

停止守护进程

在更改关于守护进程内存设置或调试故障时,重启守护进程是必要的。

您可用以下命令停止运行守护进程,这将停止该工程下的守护进程:

hvigorw --stop-daemon

如果您想停止所有守护进程,可以使用以下命令:

hvigorw --stop-daemon-all

性能影响

当您重复构建同一项目时,守护进程能够缩短构建时间。多次构建时,守护进程只会一次性将hvigor加载到内存中,而不会在每次构建时都进行加载。