应修改 phpstorm.vmoptions 文件调整 jvm 堆内存,推荐起步值 -xms512m -xmx2g,配合 -xx:+useg1gc 优化垃圾回收,注意避开系统 jdk 兼容问题及插件/路径干扰。

PhpStorm 启动报 OutOfMemoryError 怎么办
直接调大 JVM 堆内存,但不是所有地方都能改——关键在 phpstorm64.exe.vmoptions(Windows)或 phpstorm.vmoptions(macOS/Linux)这个文件,它控制 IDE 自身的 JVM 参数,和项目运行时的 PHP 内存无关。
- 路径通常在:
~/.PhpStorm2023.x/config/(macOS/Linux)或%APPDATA%\JetBrains\PhpStorm2023.x\(Windows),不是安装目录下的bin/ - 必须用文本编辑器打开,不能双击运行;改完要重启 PhpStorm 才生效
- 常见错误是把
-Xmx设得太大(比如-Xmx8g),结果系统物理内存不足,IDE 直接启动失败或卡死在欢迎页 - 推荐起步值:
-Xms512m -Xmx2g,4G 内存机器别超1.5g,16G 以上可试3g
为什么改了 phpstorm.vmoptions 没反应
大概率是改错了文件位置,或者被 JetBrains Toolbox 覆盖了配置。
- 如果用 Toolbox 管理 PhpStorm,它会自动生成独立配置文件,路径类似:
~/.cache/JetBrains/Toolbox/apps/PhpStorm/ch-0/,优先级高于用户目录下的 config - Windows 上注意区分
.vmoptions和.bat文件——改phpstorm.bat无效,那是启动脚本,不读 JVM 参数 - 改完后检查 PhpStorm 关于窗口里的
JVM options行,点Help → About就能看到实际加载的是哪个文件、当前参数是什么 - 如果看到
-XX:ReservedCodeCacheSize=...这类参数报错,说明用了太新的 JVM 版本(如 JDK 21),而 PhpStorm 2023.2 默认只兼容到 JDK 17,需降级或等新版支持
-XX:+UseG1GC 这个参数要不要加
建议加,尤其开多个项目、装了大量插件时。G1 垃圾回收器比默认的 Parallel GC 更适合 PhpStorm 这类长时间运行的 GUI 应用。
- 加上后能减少卡顿感,特别是切换分支、索引大 vendor 或执行 Composer 操作时
- 搭配使用:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200,避免 GC 暂停太久影响响应 - 但别和
-XX:+UseParallelGC或-XX:+UseConcMarkSweepGC同时存在,JVM 会报错退出 - PHP 项目本身不受此影响——这只是 IDE 的 JVM 配置,和你写的 PHP 代码、
memory_limit完全无关
改完内存还是卡,是不是该换 JVM 版本
是的,但只换 JetBrains 官方认证的版本。PhpStorm 自带 JBR(JetBrains Runtime),比系统 JDK 更稳。
- 不要手动替换成 Oracle JDK 或 OpenJDK 21+,除非你在 Help → Find Action 里搜
Switch Boot JDK并确认版本兼容表(官网有明确列表) - 目前(2024 年中)PhpStorm 2023.3 推荐 JBR 17,2024.1 开始支持 JBR 21,但部分插件可能还没适配
- 换 JVM 后第一次启动会重新索引,耐心等几分钟;如果反复崩溃,立刻切回 JBR 17
- 真正拖慢 PhpStorm 的往往不是内存,而是插件(比如某些老旧的 PHP Annotations 插件)、项目根目录下巨量 node_modules 或 .git/logs,先关插件、排除路径再调内存
改内存只是表象,核心是让 JVM 有足够空间处理索引、语法分析和后台任务。很多人调到 -Xmx4g 还卡,其实是因为没关掉同步 Git 差异或禁用不必要的语言服务——这些比堆大小更容易被忽略。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










