PhpStorm 启动卡顿和OutOfMemoryError的根本原因是JVM堆内存默认仅750MB,远低于大项目索引所需的2GB+;需同步修改vmoptions中-Xms2g、-Xmx4g、-XX:ReservedCodeCacheSize=512m,并排除vendor等目录、禁用PHP Annotations等高耗插件。

为什么 PhpStorm 启动就卡、打开大项目直接 OutOfMemoryError
根本原因是 JVM 堆内存默认太小(通常 750MB),而现代 PHP 项目带 Composer autoload、PSR-4 映射、大量注解和插件(如 Laravel Idea、PHP Annotations)时,索引阶段会吃掉 2GB+ 内存。不是电脑慢,是 PhpStorm 没被正确喂够内存。
修改 vmoptions 文件的三个关键位置
不能只改一个地方,IDE 启动前、启动中、后台进程都要覆盖:
- Windows:编辑
PhpStorm64.exe.vmoptions(位于PhpStorm\bin\目录下) - macOS:右键 PhpStorm → “显示包内容” → 编辑
Contents/bin/phpstorm.vmoptions - Linux:编辑
phpstorm/bin/phpstorm64.vmoptions
重点改这三行(数值按 16GB 内存机器推荐):
-Xms2g -Xmx4g -XX:ReservedCodeCacheSize=512m
注意:不要设 -Xmx 超过物理内存的 50%,否则系统会频繁 swap;-Xms 和 -Xmx 建议设为相同值,避免运行时扩容抖动。
立即学习“PHP免费学习笔记(深入)”;
关掉吃内存的“隐形杀手”插件
有些插件看着轻量,实则持续扫描文件或维护大型缓存:
- 禁用
Database Tools and SQL(除非你真在 PhpStorm 里连 MySQL) - 卸载
PHP Annotations(Laravel 用户尤其容易中招,它会为每个@var做全项目类型推导) - 关闭
Markdown Navigator的实时预览(在 Settings → Languages & Frameworks → Markdown → Preview → 取消勾选Enable preview)
验证效果:重启后打开 Help → Diagnostic Tools → Memory Indicator,观察“Used/Total”是否稳定在 60% 以内。
索引优化:排除不需要被分析的目录
vendor、node_modules、logs、build 这些目录只会拖慢索引、不提供跳转价值:
- 右键目录 →
Mark Directory as → Excluded - 或批量设置:Settings → Directories → 点击
+→ 添加路径模式,如**/vendor/**、**/node_modules/**
排除后首次重新索引仍需时间,但后续打开/搜索快一倍以上。注意:排除 vendor 不影响 composer.json 自动补全——那是靠 stubs 实现的,不依赖文件索引。
真正卡顿往往不是配置没调,而是 Excluded 没做全、插件关不干净、或者 vmoptions 改了但没改对位置(比如改了旧版本的 bin 目录)。建议改完一项就重启一次,用 Memory Indicator 看真实占用,别猜。


















