You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何安装blade-simple-icons包后Laravel启动耗时增加3秒?

Laravel安装blade-simple-icons后加载耗时剧增问题

我安装了全新的Laravel v9.3.8应用,配置好Composer、.env文件并生成密钥,使用PHP 8.1.11,原本应用运行流畅。但安装codeat3/blade-simple-icons包后,页面加载耗时增至2-3秒,哪怕是如下简单路由:

Route::get('/x', function(){
    return 'Is it still slow?' . (microtime(true) - LARAVEL_START);
});

并且在服务提供者的boot方法末尾dump时,耗时仅0.2秒。该包本身体积很小,为何会导致加载耗时增加2秒?


可能的原因及解决方向

  • 大量图标文件的IO扫描开销:这个包封装了Simple Icons的数千个SVG图标,虽然仓库体积小,但实际包含的图标文件数量极多。Laravel在处理blade组件时,可能会在首次请求或缓存失效时遍历这些文件、注册对应组件,大量文件IO操作会直接拉低加载速度。
  • 组件注册逻辑的延迟执行:包的服务提供者可能在boot方法执行完成后,才触发图标组件的注册逻辑(比如首次调用图标组件时才遍历文件),这部分耗时不会被你在boot末尾的dump统计到,但会体现在整个请求的总耗时里。
  • OPcache未启用或配置不当:如果PHP的OPcache没有开启,每次请求都要重新解析包内的所有类文件和图标相关辅助代码,大量小文件的解析累加起来会造成明显耗时。开启OPcache后,脚本会被缓存到内存,重复请求的耗时会大幅下降。
  • Laravel缓存未更新:安装新包后没有重新生成配置、视图缓存,导致框架每次都要重新扫描加载新的组件信息。执行以下命令生成缓存:
    php artisan config:cache
    php artisan view:cache
    php artisan route:cache
    
  • 自动加载映射未优化:执行composer dump-autoload -o优化Composer的自动加载映射,减少类文件的查找时间。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:35:37