发现一个可能的 IDEA 输入法卡顿的原因 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zgray
V2EX    macOS

发现一个可能的 IDEA 输入法卡顿的原因

  •  4
     
  •   zgray 2018-04-18 22:02:07 +08:00 18965 次点击
    这是一个创建于 2737 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先我的机器是 MacBook Pro (Retina, 13-inch, Early 2015),16G 内存,macos13.14 。 遇到的问题是在 IDEA 下,用搜狗输入输入的时候会一顿一顿的(无论是否外接显示器)。而同事的 mbp2017 15 寸却健步如飞(不外接显示器)。

    这个就触发了我的好奇:为什么我的卡,他的不卡?

    今晚我在不外接显示器的情况下花了点时间测试了,最终发现和系统的分辨率有关系。

    我习把分辨率调为“更多空间”,毕竟 13 寸屏幕不大,默认分辨率可看的东西太少。而且调到更多空间后发现没什么特别大的影响就没在意了。直到今晚测试的时候!!!

    当我把分辨率设置为“默认”的时候,在 IDEA 下输入基本也不卡顿,而一旦调到“更多空间”就开始卡了。 经过测试,用 RDM 这样的小工具调整了分辨率,分别测试了多个非 Retina 的分辨率都不卡。

    最后怀疑,“更多空间”实际对应的是屏幕的最高分辨率 3360x2100,而在该分辨率下 IDEA 的优化不够,或者 macos 的集成显卡性能不行,最终导致输入的时候一顿一顿的。而同事的 mbp2017 是 15 寸的版本,具备独显,而且他也没调整过分辨率,一直使用的“默认”。

    总之造成卡顿的原因基本在于 3 点:1、集成显卡; 2、macos 分辨率缩放算法; 3、jetbrains 的高分辨率优化不行。具体还得进一步分析,有条件的朋友可以一块分析下看看。

    最终我的解决方案:尽量不要用“更多空间”这个选项,输入法速度基本正常(还是有细微的卡顿)。

    PS:外接显示器的情况明天到公司再继续测试下(外接显示器为:P2415Q,分辨率模式为“默认”)

    第 1 条附言    2018-04-19 09:04:29 +08:00

    补充: 刚到公司,测试了下外接显示器的效果。测试环境如下:

    1. 合上rmbp的盖子,减少内部显示器输出对显卡的影响。
    2. 设置p2415q显示器的各种分辨率,在IDEA下使用搜狗输入法输入统一的文字观察显示效率。

    测试结果:

    1. p2415q的默认Retina分辨率为1920x1080,实际显卡输出分辨率经过换算为3840x2160,在该分辨率下输入迟钝。
    2. 设置为“较大文字”(Retina分辨率为1504x846,显卡输出分辨率为3008x1692),输入延迟好转。
    3. RDM工具设置分辨率1920x1080(非Retina),输入流畅。
    第 2 条附言    2018-04-19 09:11:42 +08:00
    一个新的发现:当我保持默认分辨率的情况下,手动调整 IDEA 窗口的大小到比较小的时候(大概 791x845 的尺寸),输入流畅。再往大调整的时候,会开始慢慢感觉有点卡了。
    第 3 条附言    2018-04-19 09:24:39 +08:00

    进一步测试:统一分辨率,同样窗口尺寸的情况下。 使用字体Menlo,将字体大小进行调整,当调整到12的时候,输入较为卡顿。当调整到22的时候,输入卡顿大为减缓。

    初步结论:当使用较小字体时,IDEA的一个editor显示的文本内容较多,当输入中文的时候渲染压力增大,导致输入卡顿。而增加字体大小,使得IDEA一屏显示的内容减少,渲染压力降低,输入卡顿缓解。

    因此,如果遇到输入卡顿的朋友试试想办法减少editor一屏显示的文本量(如增大editor字体大小)可适当改善输入的效率。

    ps: 感觉输入法卡顿的原因还是IDEA的渲染算法需要优化。

    第 4 条附言    2018-04-25 08:55:51 +08:00

    jetbrains已经确定了是他们的锅了,目前该问题在今天发布的2018.1.2的IDEA中还未解决。

    具体看这里:https://confluence.jetbrains.com/display/JRE/1.8.0_152-release-1136-b29+x86_64

    第 5 条附言    2018-04-27 09:19:38 +08:00

    在macos下测试了1.8.0_152-release-1136-b29 x86_64版本的jre,发现中文输入卡顿问题有缓解,至少输入速度上是可以接受了。这个版本在最新的IDEA release版本中自带,有卡顿的朋友可以更新试试是否输入速度改善。

    然后,大概是前天jetbrains的jre的release日志中更新了一个新版本1.8.0_152-release-1136-b34 x86_64,这个版本解决了windows下万年的输入法提示区位置不正确的问题。

    第 6 条附言    2018-04-28 14:20:07 +08:00

    通过查看的JRE-526的评论后,目前明确了IDEA输入卡顿(不仅仅是中文)的原因。

    大体意思是说,java的java2d实现方式是基于OpenGL的,而macos早就不用这套渲染引擎了,而是使用metal之类的引擎。这样的结果就使得java的图形渲染在mac上总感觉慢一拍,使用很多的java类gui工具都有类似的体验,比如xmind。

    现在Jetbrains的Alexey Ushakov准备放大招了,他最近新建了一个issus,用于将原本基于OpenGL实现的java2d改为基于metal的实现。

    不过这个工作将会是漫长的,当有任何新的信息的时候我将另开一个帖子来和大家交流该问题。

    第 7 条附言    2021-07-23 11:00:01 +08:00
    https://youtrack.jetbrains.com/issue/JBR-745#focus=Comments-27-4993765.0-0
    该帖子经历了 4 年,实际该问题可能更加的久远,jetbrain 系 IDE 总算即将迎来支持 metal 的 JDK,预计到 10 月的时候 openjdk 也将带来 metal 支持。
    38 条回复    2025-02-10 23:00:31 +08:00
    liuhy1991
        1
    liuhy1991  
       2018-04-18 22:12:34 +08:00
    我的老 macbook 接显示器,分屏显示,看个视频,cpu 蹭蹭地涨,风扇呼呼地转。
    镜像显示时候一点毛病都没有。
    感觉是相似的问题
    huijiewei
        2
    huijiewei  
       2018-04-18 22:54:29 +08:00
    你这么说的我都想换掉 2015 的 rMBP 了。
    intsilence
        3
    intsilence  
       2018-04-18 23:41:50 +08:00   1
    idea 卡顿的时候看下日志( ~/Library/Logs/IntelliJIdea2018.1 ),自己找不到原因可以提个 issue
    wenbinwu
        4
    wenbinwu  
       2018-04-18 23:44:26 +08:00
    为什么要在 idea 里用输入法?
    easylee
        5
    easylee  
       2018-04-18 23:48:12 +08:00
    直接在文件管理器替换工程下文件,IDEA 和 AS 都会卡顿,时间不到 2 秒。( win10+i7-6700HQ+240g SSD+32g DDR4 )
    icebay
        6
    icebay  
       2018-04-19 00:36:39 +08:00   4
    @wenbinwu #4 杠精
    sinxccc
        7
    sinxccc  
       2018-04-19 02:21:59 +08:00
    没错

    15 寸的 MacBook Pro 2016,集成显卡开 1680x1050 分辨率的时候明显比 1440x900 要卡顿,强制独立显卡就一点问题都没有。
    UnknownR
        8
    UnknownR  
       2018-04-19 10:22:11 +08:00
    兄 dei,macOS 并不能直接调分辨率,那个只是缩放大小,下面的灰色小字写得很明白了,不管你是选更多空间还是默认,分辨率还是那个分辨率,除非你用第三方软件手动调整分辨率,scale 和 resolution 是不一样的
    torbrowserbridge
        9
    torbrowserbridge  
       2018-04-19 10:26:32 +08:00
    @sinxccc 怎么强制使用独立显卡
    ech0x
        10
    ech0x  
       2018-04-19 10:32:02 +08:00 via iPhone   1
    @torbrowserbridge gfxCardStatus
    torbrowserbridge
        11
    torbrowserbridge  
       2018-04-19 10:33:41 +08:00
    @ech0x

    据说这样就可以?

    sudo pmset -a GPUSwitch 0
    torbrowserbridge
        12
    torbrowserbridge  
       2018-04-19 10:34:08 +08:00
    sudo pmset -a GPUSwitch 1
    LeungJZ
        13
    LeungJZ  
       2018-04-19 11:37:45 +08:00
    mbp15 2016,vsc 在非默认(非 1080p )的分辨率下,会闪屏。
    imherer
        14
    imherer  
       2018-04-19 11:44:14 +08:00
    IDEA 里没遇到过卡, 倒是在微信里经常卡,感觉是搜狗输入法的锅。 因为我切会自带输入法就没问题
    huijiewei
        15
    huijiewei  
       2018-04-19 12:04:05 +08:00
    2015 款的 rMBP 物理分辨率和 2016 款的一样的物理分辨率

    看来 2016 款以后都是默认给缩放了
    l8mEQ331
        16
    l8mEQ331  
       2018-04-19 17:07:30 +08:00
    一直不知道原因,用第三方输入法就不卡。现在用搜狗感觉也还行吧,除了偶尔右上弹广告。
    icebay
        17
    icebay  
       2018-04-20 04:33:35 +08:00
    我是 2017 款 13 寸 touch bar 8G. 外接 U2718Q.使用的是镜像显示。
    发现在“较大文字”和“更多空间下”,是不卡顿的,只有选择中间 3 个显示选项的时候才会有卡顿现象。
    感觉可以反馈去官网反馈一波,但使用的本地授权而不好意思去反馈
    Telegram
        18
    Telegram  
       2018-04-20 15:31:24 +08:00 via iPhone
    听说过插上电源就卡,不插电就不卡的说法
    c9
        19
    c9  
       2018-04-25 09:03:48 +08:00
    感谢答案,特来回复。
    cppgohan
        20
    cppgohan  
       2018-04-25 09:24:50 +08:00
    "High CPU usage and freezes on Mac when typing"
    看来 windows 版本逃过一劫 XD
    zgray
        21
    zgray  
    OP
       2018-04-25 12:06:55 +08:00
    @cppgohan 其实 windows 也有小问题,只是不影响性能,比如万年的输入法光标不跟随问题。只是 mac 比较悲剧,cpu 高占用的时候就卡了。而没卡的机器,感觉是 CPU 比较高。
    caryxiao
        22
    caryxiao  
       2018-06-04 10:23:32 +08:00
    我 2013 款的 mbpr... 外接显示器用 webstorm,有时候很卡。 但是不外接显示器非常好,一点都不卡...每次只有重新启动后才会好。
    singlepig
        23
    singlepig  
       2018-06-07 15:44:24 +08:00
    对我的情况来说,改大字体,让一屏显示更少的字符确实有助于提高流畅度。
    平常都是外接显示器用 AS
    FunnyCodingXu
        24
    FunnyCodingXu  
       2018-08-20 10:09:49 +08:00
    牛逼,感谢楼主,照着楼主的法子(把窗口缩小,减小同时渲染文字个数)确实有帮助
    我是 2015 15 寸低配无独显款 外接 4K
    不知道有独显的 2018 是不是会好很多
    JingSmith
        25
    JingSmith  
       2019-10-12 12:57:22 +08:00
    新买的 2019 macbookpro vega 20 显卡跑起来都有轻微卡顿,简直了,idea 神优化
    coderbean
        26
    coderbean  
       2019-11-19 00:49:45 +08:00 via iPhone
    2020.1 有望用上 metal
    cyll
        27
    cyll  
       2020-05-06 10:26:50 +08:00
    Lanai project (Metal integration in OpenJDK)的目标完成日期是:08 Jun 2020
    cyll
        28
    cyll  
       2020-05-06 10:27:57 +08:00
    all4fun
        29
    all4fun  
       2020-10-27 15:16:25 +08:00
    挖坟... 2020.2 版本,问题依然存在
    chenjiangui998
        30
    chenjiangui998  
       2020-10-29 10:07:32 +08:00
    IDEA 带高分辨率屏必须要有独显. 集显渲染能力太差了
    hubahuba
        31
    hubahuba  
       2021-04-03 11:45:51 +08:00
    2021 年 04 月 03 日 11:45:46 挖坟 问题依然在
    devswork
        32
    devswork  
       2021-04-19 14:16:31 +08:00
    挖坟,2021.1 版本,mac 自带输入法卡顿,换百度输入法有所改善,纯英文输入时不卡顿。配置=16 寸 i7 32G + 1T
    KingFong
        33
    KingFong  
    PRO
       2021-07-22 21:36:17 +08:00
    挖坟,2021.1 版本 pycharm,自带输入法,卡成马儿。 配置:M1 MBA 13 寸,16G 内存。
    zgray
        34
    zgray  
    OP
       2021-07-23 11:01:19 +08:00
    KingFong
        35
    KingFong  
    PRO
       2021-07-23 12:01:03 +08:00
    @zgray 三年了,等的花儿都谢了。
    xcc880
        36
    xcc880  
       2021-08-20 14:31:03 +08:00
    感谢, 终于知道原因了
    joijoop16
        37
    joijoop16  
       2024-08-11 19:46:37 +08:00
    挖坟,m1macbookpro 调高 idea 分辨率,mac 自带输入法还是卡顿
    Midnight
        38
    Midnight  
       247 天前
    挖坟了,各位,如果是输入完后代码提示半天没反应,包括语法错误半天解析不了 有什么招吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5617 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 03:30 LAX 20:30 JFK 23:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86