语言服务
JetBrains Rider 依赖 TypeScript、Vue、Astro、Svelte 以及其他特定框架的语言服务来提供自动补全、代码分析和错误高亮功能。
配置内存处理
尽管 JetBrains Rider 致力于与语言服务良好集成,但仍可能出现由语言服务而非 JetBrains Rider 本身引起的 out-of-memory 错误。
内存处理模式
当语言服务内存耗尽时,JetBrains Rider 会首先尝试重启该服务。 在连续两次尝试失败后,语言服务将停止,JetBrains Rider 会在状态栏中的 语言服务 小部件中指示错误,并弹出错误提示窗口。
为了防止 out-of-memory 错误或自动解决此类错误,从而确保语言服务的稳定运行,您可以在以下两种模式下配置内存处理:
自动增加内存
在此模式下,当即将发生 out-of-memory 错误时,JetBrains Rider 会自动增加 1000MB 内存,并在后台重启语言服务。
JetBrains Rider 会以这种方式静默运行,直到达到最高 25% RAM 的内存限制,届时语言服务将停止,且 JetBrains Rider 会弹出错误提示窗口。
有关可能的改进措施,请参阅 故障排除。
设置内存限制
在此模式下,您可以手动指定语言服务可使用的最大内存。 在达到此限制前,JetBrains Rider 每次出现 out-of-memory 错误时会建议增加 1000MB 内存。
在达到指定限制后,语言服务将停止,JetBrains Rider 会弹出错误提示窗口。
有关可能的改进措施,请参阅 故障排除。
为 TypeScript 语言服务配置内存处理
通过按下 Ctrl+Alt+S 打开设置,并导航到 。
在 语言服务内存 区域中选择内存处理模式:
选择 如果可用,自动增加内存 以静默方式增加内存并重启语言服务。
或者,选择 设置内存限制 并指定语言服务可使用的最大内存。
如果指定的内存大小超出可用 RAM,JetBrains Rider 会在工具提示中建议一个合适的值。
故障排除
当语言服务超出分配的内存限制且无法继续处理工作负载时,将发生 out-of-memory 错误。 这往往由于以下原因造成:
当前处理的项目包含大量文件和依赖项。
IDE 设置中指定的最大内存限制不足以满足语言服务的需求。
增加内存分配
按 Ctrl+Alt+S 打开设置并导航到 。
请选择 设置内存限制 选项。
逐步增加限制,例如从 4GB 提升至 6GB,再提升至 8GB。 监控改进情况。
限制项目范围
拥有大量文件或依赖项的大型项目可能会使语言服务超载。 若要在大型代码库中减轻负载,请遵循 TypeScript 团队提供的 性能指南 中的建议,尤其是 Using Project References 和 Configuring tsconfig.json or jsconfig.json 两个部分。
升级或降级
请确保使用的是最新版本的语言服务。
JetBrains Rider 随附已打包的语言服务版本。 然而,语言服务的新版本通常包含性能改进。 因此,建议您保持语言服务为最新版本。
要安装最新版本的语言服务,请打开内置的 终端 (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如果语言服务升级后出现问题,请尝试降级至先前版本,以确认问题是否由升级引起。
在 JetBrains Rider 问题跟踪器中提交问题
如问题仍然存在,请在 JetBrains Rider issue tracker 中提交问题并附上相关项目。 这将有助于我们更高效地重现和调查问题。