如何减少 Hyperf 框架的扫描时间

 

原因

Hyperf 框架为了防止用户更新组件后,代理缓存没有更新导致启动报错。增加了以下钩子。

{
    "scripts": {
        "post-autoload-dump": [
            "init-proxy.sh"
        ]
    }
}

而 init-proxy.sh 脚本,会执行 php bin/hyperf.php di:init-proxy 命令清理代理缓存,并重新生成。

$ composer init-proxy
> init-proxy.sh
../../
Runtime cleared
Scanning app ...
Scan app completed, took 195.76692581177 milliseconds.
Scanning vendor ...
Scan vendor completed, took 510.0839138031 milliseconds.
This command does not clear the runtime cache, If you want to delete them, use `vendor/bin/init-proxy.sh` instead.
Proxy class create success.
Finish!

上述演示中,我们很清楚的可以看到花费的时间,现在不足 1s 其实还可以接受。但如果您的模型非常多,这个时间可能会是无法忍受的一个点。比如以下情况。

$ composer init-proxy
> init-proxy.sh
../../
Runtime cleared
Scanning app ...
Scan app completed, took 306

你可能感兴趣的:(php,php,swoole,Hyperf)