语言服务
PyCharm 依赖于 TypeScript、Vue、Astro、Svelte 以及其他框架专属语言服务来提供代码补全、代码分析与错误高亮功能。
配置内存处理
尽管 PyCharm 力求与语言服务实现平滑集成,但仍可能出现由语言服务引起而非 PyCharm 自身导致的 out-of-memory错误。
内存处理模式
当语言服务内存不足时,PyCharm 会首先尝试重启该服务。 在连续两次尝试失败后,语言服务将停止,PyCharm 会在状态栏的 语言服务 组件中指示该错误,并弹出错误信息提示框。
为防止 out-of-memory错误或自动解决错误,从而确保语言服务稳定运行,您可以采用以下两种模式配置内存处理:
自动增加内存
在此模式下,当即将发生 out-of-memory错误时,PyCharm 会自动增加 1000MB 内存并在后台重启语言服务。
PyCharm 将安静地持续此策略,直到达到最大内存限制(25% 的 RAM),此时语言服务停止并弹出错误信息提示框。
如需获取改善当前状况的可行措施,请参阅 故障排查。
设置内存限制
在此模式下,您需要手动指定语言服务可用的最大内存。 在未达到此限制前,PyCharm 会在每次 out-of-memory错误发生时建议增加 1000MB 内存。
当达到指定限制后,语言服务将停止,PyCharm 会弹出错误信息提示框。
如需获取改善当前状况的可行措施,请参阅 故障排查。
为 TypeScript 语言服务配置内存处理
通过按 Ctrl+Alt+S 打开设置,并导航到 。
在 语言服务内存 区域中,选择内存处理模式:
选择 在可用的情况下自动增加内存 以自动增加内存并静默重启语言服务。
或者,选择 设置内存限制 并指定语言服务的最大可用内存。
如果指定的内存大小超过可用 RAM,PyCharm 会在工具提示中建议合理值。
故障排查
当语言服务超出其分配的内存限制且无法继续处理工作负载时,会出现 out-of-memory错误。 通常由于以下原因导致:
当前项目包含大量文件和依赖项。
在 IDE 设置中指定的最大内存限制不足以支持语言服务。
增加内存分配
按 Ctrl+Alt+S 打开设置并导航到 。
请选择 设置内存限制 选项。
逐步提高内存限制,例如从 4GB 增至 6GB,再提高至 8GB。 监测效果变化。
限制项目范围
包含过多文件或依赖项的大型项目可能导致语言服务过载。 为减少大型代码库的负担,请遵循 TypeScript 团队提供的 性能指南中的建议,尤其是 Using Project References及 Configuring tsconfig.json or jsconfig.json章节。
升级或降级
请确保使用的是最新版本的语言服务。
PyCharm 随附已打包的语言服务版本。 但较新版本的语言服务通常具备更好的性能表现。 因此,建议将语言服务保持为最新版本。
要安装最新版本的语言服务,请打开嵌入式 终端 (Alt+F12 ),并根据所使用的语言服务和包管理器输入如下命令之一:
npm install --save-dev typescript或
pnpm add --save-dev typescript或
yarn add --dev typescriptnpm install --save-dev @vue/language-server或
pnpm add --save-dev @vue/language-server或
yarn add --dev @vue/language-servernpm install --save-dev svelte-language-server typescript-svelte-plugin或
pnpm add --save-dev svelte-language-server typescript-svelte-plugin或
yarn add --dev svelte-language-server typescript-svelte-pluginnpm install --save-dev @astrojs/language-server或
pnpm add --save-dev @astrojs/language-server或
yarn add --dev @astrojs/language-server如果在更新语言服务后出现问题,建议降级至旧版本以验证是否由更新引入问题。
在 PyCharm 问题跟踪器中提交问题
如果问题仍然存在,请在 PyCharm issue tracker中提交问题并附上您的项目。 这将有助于我们更高效地复现并排查问题。