IDEA报错:Failed to create JVM | vm设置相关问题 | 编译速度改善

先上结论

  • 如果是更改idea的自定义vm选项后报错,如图

在这里插入图片描述
可以直接在C:\Users\xxx\AppData\Roaming\JetBrains\IdeaIC2023.1路径下找到idea64.exe.vmoptions文件(或者idea.exe.vmoptions) ,删除后重新打开即可。

如果不想删除,则可以打开文件看看有没有不合理的地方,比如
ReservedCodeCacheSize是否过大,修改后即可。

  • 改善编译速度在文章最后

问题复现

报错截图

在这里插入图片描述

走的弯路

今天在使用IDEA写代码时,发现同学编译速度明显比我快,一个简单的小项目,同学1-2秒完工,我居然需要5-6s,那绝对不能忍。

我的配置是R7 5800H加上普普通通SSD,应该不至于那么差,所以在互联网世界小搜了一下。

在一篇题为“IntelliJ build is extremely slow compared to external Maven build”的文章中,我发现了一种很新颖的解决方法,如图
在这里插入图片描述

评论说比之前快多了,那我这刚学的英语哪能受这委屈 ,直接当场cv到IDEA的vm设置里,之后IDEA就再也打不开了。

代码如下:
-Dcompiler.ref.index=false

下面是对这行的解释

简单来说,JVM会在启动时对类和方法进行扫描,生成引用索引。
引用索引即JVM在运行时为了提高类加载和方法查找的性能而创建的数据结构。
这个启动参数用于禁用JVM在运行时生成和维护对类和方法的引用索引。
但是如果不需要频繁加载和查找类和方法,禁用引用索引可能会提高JVM的启动速度和内存使用效率。

当时天真如我没看日期和具体解释就去干活了。

所以到这里问题就结束了吗?并没有。由解释可见,这行命令只是禁用了索引,并不会导致IDEA打不开。

因此只能寻找其他因素,我在查资料时唯一更改的只有vm设置,因此也只能是其出现相关问题。

备份原文件后删除c盘下相应文件后果然得到解决。

问题在于VM参数设置

在这里插入图片描述
检查原文件相关设置,可以发现这里除了禁用索引,就是对内存的调整。前两个设置最大最小内存,每超出范围不会引发IDEA无法启动的问题,因此只能是第三个参数,即预留代码缓存区大小的设置。

ReservedCodeCacheSize 是JIT编译器存放本地代码的代码缓存区域的大小。换句话说,这就是Java这种传统意义上的解释型语言又被认为有编译型语言的特点的原因。虚拟机将热点代码编译成机器码,编译后的机器码就存储在这里。

显而易见,缓存区的大小将严重影响程序性能的稳定性。因此,在网络常见的虚拟机内存设置中都会建议将其调大一点。那么问题来了,该缓存区可以无限大吗?明显不能!

我在编辑相关设置时,曾将其设置为4096m,会不会是因为过大导致崩溃?

经过查找相关资料,windows系统为其限定到了2G大小,超过限制则会导致IDEA无法启动,问题解决。

其他

最后总结一下优化性能的方法

  1. 对我帮助最大的就是把Javac编译器更改为Eclipse了,基本能把编译速度降低3秒左右,目前没有任何bug出现,以后不一定
  2. 其次网上给出一些更改内存的方法,目前对我没有任何作用,这里还是贴出来吧
    在File | Settings | Build, Execution, Deployment | Compiler 中,将Shared build process heap size (Mbytes)根据你的内存大小进行调整。
    另外,在Help | Change Memory Settings中,同样根据内存大小进行调整,最高可达你可用内存的85%1
  3. 可以在vm参数里设置ReservedCodeCacheSize的大小,最高2G,建议根据自己的环境配置。另外JDK8以前的版本可以手动开启分层编译,其余版本可以设置TierCompileThreshold参数调整jvm虚拟机对热点代码的判断机制,不过官方不建议更改

  1. 原文地址 ↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误提示意味着Java虚拟机(JVM)无法被创建。这可能是由于以下原因导致的: 1. Java环境变量未正确设置 2. Java安装损坏或不完整 3. 系统资源不足,无法分配足够的内存给JVM 4. 其他未知问题 要解决这个问题,可以尝试以下步骤: 1. 确保Java环境变量已正确设置 2. 重新安装Java并确保安装完整 3. 关闭其他应用程序以释放系统资源 4. 如果以上步骤无效,则需要进一步调查问题的根本原因。 ### 回答2: 当看到"idea failed to create jvm"错误信息时,通常表示IntelliJ IDEA无法成功启动Java虚拟机(JVM)。这可能是由于以下几个原因导致的: 1. Java路径配置错误:IDEA可能无法找到正确的Java安装路径。解决方法是检查Java环境变量配置,确保其正确设置。可以通过在命令提示符中输入"java -version"来确认Java是否正确安装并设置了环境变量。 2. JDK版本不兼容:可能当前正在使用的JDK版本与IntelliJ IDEA不兼容。请确保已经安装和配置了与当前版本的IntelliJ IDEA兼容的Java Development Kit(JDK)。可以尝试升级JDK版本,或按照IntelliJ IDEA官方文档建议的最低兼容版本进行安装。 3. 内存不足:如果电脑的内存不足,可能导致IDEA无法成功启动JVM。在这种情况下,可以尝试增加计算机的可用内存,或者关闭其他占用大量内存的应用程序。 4. 系统环境问题:某些操作系统或其他软件可能会干扰IntelliJ IDEA的正常启动。在这种情况下,可以尝试重新安装IDEA,更新操作系统,或与IntelliJ IDEA社区进行交流,获取更多关于特定环境的解决方案。 无论哪种情况,通过检查和解决上述问题,通常可以解决"idea failed to create jvm"错误,使IntelliJ IDEA能够成功启动并使用JVM。如果问题仍然存在,建议查看IDEA的日志文件,以获取更详细的错误信息,并在IntelliJ IDEA支持社区或官方技术支持渠道寻求帮助。 ### 回答3: 当程序运行时,如果出现"idea failed to create JVM"错误消息,表明IntelliJ IDEA无法成功创建Java虚拟机(JVM)。这个错误可能是由于以下几个原因导致的: 1. JRE/JDK路径问题: IntelliJ IDEA需要正确配置JRE/JDK路径,以便能够启动Java虚拟机。如果路径是错误的或者没有配置正确,就会出现该错误信息。检查并确保JRE/JDK路径正确配置。 2. 内存不足: 如果系统内存不足或没有足够的可用内存分配给Java虚拟机,IntelliJ IDEA将无法创建JVM。增加系统内存或配置IntelliJ IDEA中的JVM参数,以增加可用内存。 3. 配置错误: 可能是因为配置文件中的某些设置出现问题,导致无法创建JVM。检查IntelliJ IDEA的配置文件,如idea.vmoptions文件,确保其中的设置正确。 4. 没有正确安装JRE/JDK: 如果没有正确安装Java运行时环境(JRE)或Java开发工具包(JDK),IntelliJ IDEA将无法创建JVM。确保已正确安装JRE/JDK,并且是与IntelliJ IDEA版本兼容的。 5. IntelliJ IDEA版本问题: 某些IntelliJ IDEA版本可能存在的错误或问题,可能导致无法创建JVM。尝试更新到最新版本,或者尝试使用另一个已知稳定的版本。 与此错误相关的具体原因可能因情况而异,可以根据错误消息中提供的更多详细信息进行诊断。如果以上解决方法仍然无效,可以尝试在IntelliJ IDEA的官方社区论坛或支持平台上获得进一步的帮助和支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值