Laravel 9/10 + TALL栈应用性能问题求助:资源加载与执行延迟
Laravel TALL栈应用严重性能延迟问题排查求助
问题核心
在Laravel 9和10版本的TALL栈(Tailwind、Alpine、Livewire、Laravel)应用中,遭遇严重性能瓶颈:
- 当JS/CSS资源存放在
vendor目录时,每个文件加载耗时约2秒;手动迁移至public目录后,加载速度大幅提升 - 应用本身(排除静态资源)加载仍需约2秒,导致Livewire表单刷新延迟2秒,无法实现响应式交互
运行环境
- 开发环境:PHP FPM 8.1.2、Nginx、Valet Linux、Ubuntu 22.04(物理机,Intel Core i5、16GB内存、M.2 NVMe SSD)
- 生产环境:PHP FPM 8.2、Apache、Debian 11
资源加载耗时对比
vendor目录加载耗时
/admin/oncalls ████████████████████████████ 1.54s /livewire/livewire.js ██████████████████████████████ 1.54s /filament/assets/app.js █████████████████████████████ 1.37s /filament/assets/echo.js ███████████████████████████████████████████████ 2.32s
public目录加载耗时
/admin/oncalls ████████████████████████████ 1.54s /livewire/livewire.js █ 9ms /filament/assets/app.js █ 6ms /filament/assets/echo.js █ 6ms
已完成的排查动作
- 排除数据库查询问题:Laravel Debugbar显示所有查询速度正常,但内存占用偏高
- 权限验证无异常:
drwxrwxr-x 81 david david 4096 mai 17 10:30 vendor drwxrwxr-x 5 david david 4096 mai 25 13:44 public - 执行过
cache:view、cache:config等缓存优化命令,无效果 - 通过Clockwork的Xdebug profiling定位到瓶颈:注释
/vendor/symfony/finder/Iterator/SortableIterator.php中getIterator()方法第105行的uasort()后,加载时间从2.36s降至0.935s,调用栈显示该方法由Filament间接触发:vendor/symfony/finder/Iterator/SortableIterator.php:116 Composer\Autoload\includeFile Composer/Autoload/ClassLoader:428 loadClass Symfony/Component/Finder/Finder:454 sortByName Illuminate/Filesystem/Filesystem:599 allFiles Filament/FilamentServiceProvider:152 registerComponents
求助需求
已排查数月未解决,恳请提供进一步的排查思路或可行的解决方案。
内容的提问来源于stack exchange,提问作者hunterd
相关产品推荐
相关产品推荐

