IDEA 2024的零卡死配置

用了苹果container跑Linux之后,IDEA 2024 用着用着就卡死,这是苹果 Silicon M1 Max专属JDK 8 的零卡死配置。

JDK版本配置

IDEA 2024在默认情况下 Project 的 Language level 会从JDK22开始的,这样,我们一般打开project的时候需要将JDK版本设置为8。通过 File → Project Structure → Project 把JDK的相关配置设为JDK8版本即可。

maven配置

IDEA 2024在默认情况下 maven使用的是3.9版本,可能需要通过Settings → Build, Execution, Deployment → Build Tools → Maven设置为我们当前所用的maven版本。

同时也建议去掉Work offline这个选项,关闭离线模式:

侧边栏跟随打开选中的文件

IDEA2024点击Tab栏上的文件,左侧的侧边栏不会跟随打开选中的,我们可以通过侧边栏的behavior设置勾选下列3个选项:

文件搜索

IDEA2024是双击Shift键快捷搜索文件的。如下图所示,输入关键字,对于all是可以看到所有的选项,然后点击preview会展开搜索项的预览情况:

如果只想要搜索类文件,则可以通过filter进行筛选。

还可以通过点击tab进行个性化筛选。比如,查询All Places(项目中的类)或者是Project adn Libraries(项目和类库中的),如下图所示:

函数的快速定位

IDEA 2024对于函数比如FutureTask的源码阅读,可以看到如下所示,无论怎样滚动代码,这个方法以及类的定义始终浮于上方。

也就是说,如果这个函数体很长,IDEA2024对此进行了优化的。

查看变量调用

IDEA 2024中,可以通过Command + B快捷键查看变量的调用。如果在项目中没有用到这个变量,那么可以用Command + Option + F7快捷键来设置检索范围:

想要查看方法或者是变量调用详情,可以先把光标停在方法或者变量上,然后通过Option + F7快捷键来查看调用详情。

以FutureTask的run方法为例,可以看到对其调用的检索,通过左边就可以定位到调用,右边就是调用的详情。

查看TODO项

要进行代码的todo项的检索,可以通过view→Tool Windows→TODO来查看:

然后在 todo 栏能看到在项目中所有的 todo 注释:

源码调试

IDEA 2024可以快速跳到下一个断点,也就是说,如果在这有几个函数,先跳过,直接到最后一行输出。只需要点击这个Run to cursor,最终就会定位到我们想要的位置上。

idea.vmoptions 配置调整

JVM配置是针对10核CPU (8性能核 + 2效率核) + 32GB统一内存的:

Markdown 复制代码
# 内存配置 - M1 Max统一内存架构优化
-Xms5120m
-Xmx5120m

# 元空间配置
-XX:MetaspaceSize=512m
-XX:MaxMetaspaceSize=1024m

# 代码缓存 - M1 Max可以用更大的缓存
-XX:ReservedCodeCacheSize=1024m

# GC策略 - M1 Max下ParallelGC表现最佳
-XX:+UseParallelGC
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=10
-XX:ConcGCThreads=3

# 编译器优化 - 充分利用10核处理器
-XX:CICompilerCount=8
-XX:+TieredCompilation
-XX:TieredStopAtLevel=4

# M1 Max特殊优化
-XX:+AggressiveOpts
-XX:+UseFastAccessorMethods
-XX:+UseCompressedOops
-XX:+UseCompressedClassPointers

# 性能调优
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+UseStringDeduplication
-XX:NewRatio=2

# Apple Silicon专属参数
-Dfile.encoding=UTF-8
-Djava.net.preferIPv4Stack=true
-Dcom.apple.macos.useScreenMenuBar=true

# 调试和监控
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:+IgnoreUnrecognizedVMOptions
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps

# JetBrains IDE专属优化
-Dsun.io.useCanonCaches=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=~/Desktop/

# UI渲染优化 (Retina显示器)
-Dawt.useSystemAAFontSettings=lcd
-Dswing.aatext=true
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine

上面的配置中:

  • 堆内存:5GB,我用Stats.app监控着RAM(内存)的占用率为83%左右,比调整配置前多了10%,除了idea本身进程的5GB,还是2个各用了至少1GB的java进程。

  • 编译线程:8个。

  • GC线程:10个,充分利用M1核心。

  • 稳定性:由G1GC调整为ParallerGC,稳定大幅提升。

小结

原先的配置导致卡死的原因主要是:

  • JDK 8配置成G1GC在M1 Max上不够稳定。

  • 编译线程数严重不足,浪费M1性能。

现在这配置是零卡死风险了。

相关推荐
skywalk816313 小时前
FreeBSD系统安装VSCode Server(未成功,后来是在FreeBSD系统里的Linux虚拟子系统里安装启动了Code Server)
ide·vscode·编辑器·freebsd
时光追逐者1 天前
Visual Studio 2026 现已正式发布,更快、更智能!
ide·c#·.net·visual studio
weixin_377634841 天前
【Git使用】PyCharm中的Git使用
ide·git·pycharm
爱吃泡芙的小白白1 天前
vscode、anaconda、git、python配置安装(自用)
ide·git·vscode·python·anaconda·学习记录
Rover.x2 天前
错误:找不到或无法加载主类 @C:\Users\AppData\Local\Temp\idea_arg_file223456232
java·ide·intellij-idea
2501_941823062 天前
强化学习在边缘AI智能控制中的应用与多语言实现实践指南
ide
Pocker_Spades_A2 天前
在家写的代码,办公室接着改?Jupyter通过cpolar实现远程访问这么玩
ide·python·jupyter
liwulin05062 天前
【ESP32-S3-CAM】如何在Arduino IDE中关闭调试
ide
三更两点3 天前
第196期 TRAE 与 Amazon Kiro 智能体驱动集成开发环境(Agentic IDE)对比
ide
ol木子李lo3 天前
Visual studio 2022高亮汇编(ASM)语法方法
汇编·ide·windows·visual studio