V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gibber
V2EX  ›  程序员

如何检查 idea 卡顿的原因

  •  
  •   gibber · 66 天前 · 1686 次点击
    这是一个创建于 66 天前的主题,其中的信息可能已经有所发展或是发生改变。

    频繁出现代码敲着敲着就卡住几秒 期间切换出来操作其他程序都正常 cpu 和内存占用都不高 有工具可以检查是什么导致的吗

    19 条回复    2021-08-20 13:26:08 +08:00
    OnlyO
        1
    OnlyO   66 天前
    把启用的插件都一个一个禁掉,排除法试下呢
    AoEiuV020
        2
    AoEiuV020   66 天前
    我遇到这问题一般是内存 xmx 用光了,频繁 gc 导致的,
    调大 xmx 试试,
    yinusxxxx
        3
    yinusxxxx   66 天前   ❤️ 2
    idea 也是一个 java 程序,平时怎么排查线上问题就可以怎么排查 idea 的问题
    chengyiqun
        4
    chengyiqun   66 天前
    先给 idea 4g 内存试试. 我都是给 6g 的.
    Sapp
        5
    Sapp   66 天前
    我的经常用着没问题,但是挂机放个半天一晚上的,再用的时候滑动都卡的一批,重启就解决了,至今找不到什么原因
    harwck
        6
    harwck   66 天前
    把内存加到 64G 就能解决了。
    内存占用不高不代表内存够,可能已经开始用 Swap 了
    zhady009
        7
    zhady009   66 天前
    IDEA 目录下面有个 log 如果出现卡顿会有个 threadDump 可以看一下
    我最近升级 2021.2 遇到了 直接堆加到 8G 就没卡顿了
    gibber
        8
    gibber   66 天前
    @AoEiuV020 我分配的是 2g 看右下角的内存占用还不到 1g 先加到 4g 试试吧
    efaun
        9
    efaun   66 天前
    @OnlyO #1 难道不应该用二分法😒
    Mogugugugu
        10
    Mogugugugu   66 天前
    帮助->诊断工具
    gibber
        11
    gibber   66 天前
    @zhady009 没有 log 和 threadDump 是 2018 版本没有吗
    Mogamigawa
        12
    Mogamigawa   66 天前 via iPhone
    禁用掉用不着的插件,你的开启加载速度会有明显提高。
    加大 xmx,在加载项目和建立索引 indexing 的时候会加快速度。
    在 indexing 时可以设置选择 share index,跳过为 jdk 建立索引。
    有的输入法在输入中文时会使 idea 卡顿,具体哪个输入法不会卡顿或者卡顿次数少需要自己尝试。
    以上是我摸索出来的经验
    xmh51
        13
    xmh51   66 天前
    项目开的多的话,保留的越少,速度越快
    gibber
        14
    gibber   66 天前
    @Mogamigawa 设置方面都用好久没改过了 插件也没动过 是最近几天才开始出现的卡顿
    gabon
        15
    gabon   66 天前 via Android
    装阿里的语法检查插件了吗,我之前 idea 卡顿然后用 jstack 分析 idea 进程,发现有很多线程都在执行 classnotfoundexception,调用栈都是 alibaba.p3cxxx,推测是阿里语法插件不兼容,卸了就好了。可以参考这个思路用 jstack 分析一下。
    flavoury
        16
    flavoury   66 天前
    如果是 2021 的 idea,本来就卡…我回退了,当然我只是提供一个思路,不一定对哈。
    另外 xms,xmx 都挺重要的,如果卡且硬件够的话就弄大一点
    2i2Re2PLMaDnghL
        17
    2i2Re2PLMaDnghL   65 天前
    @efaun 插件可能存在交叉干扰,你一个个禁才是二分,你要禁一半就是直接开对数了。
    wolfie
        18
    wolfie   65 天前
    公司机器 16G,算上 swap 已使用都 40G 了。
    reliefe
        19
    reliefe   64 天前
    同样的情况,Java 程序无法响应基本上都是因为在 GC 。在 vmoption 中打开 GC 日志 tail -f 观察观察 GC 时间和 GC 原因,再做调整。
    ```
    -Xloggc:/Users/xxx/Desktop/idea-gc/gc.log
    -XX:+PrintGCDetails
    -XX:+PrintGCDateStamps
    ```

    我的调整:
    1. 内存增大到 10G,年轻代 5G 。这个可以适当调小,最好不小于 4G 。
    ```
    -Xmx10G
    -Xms10G
    -Xmn5G
    ```

    2. 使用 CMS + ParNew 。G1 用起来太迷了。
    ```
    -XX:+UseConcMarkSweepGC
    -XX:ParallelGCThreads=8
    -XX:ConcGCThreads=7
    ```

    3. metaData 调到 1G 。( 512M 居然不够用)
    ```
    -XX:MetaspaceSize=1G
    -XX:MaxMetaspaceSize=1G
    ```
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1416 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:38 · PVG 08:38 · LAX 17:38 · JFK 20:38
    ♥ Do have faith in what you're doing.