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

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

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

    首先我的机器是 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 支持。
    36 条回复    2021-08-20 14:31:03 +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
    yanjieee
        33
    yanjieee  
       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
    yanjieee
        35
    yanjieee  
       2021-07-23 12:01:03 +08:00
    @zgray 三年了,等的花儿都谢了。
    xcc880
        36
    xcc880  
       2021-08-20 14:31:03 +08:00
    感谢, 终于知道原因了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3496 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:07 · PVG 19:07 · LAX 04:07 · JFK 07:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.