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

IDEA 将优化 M1 的图形性能表现,基于 Lanai 构建的 IDEA 将于本月发布。

  •  
  •   chrisia · 2021-03-06 19:13:51 +08:00 · 7906 次点击
    这是一个创建于 1118 天前的主题,其中的信息可能已经有所发展或是发生改变。
    众所周知,苹果在 Mojave 中弃用了 OpenGL,而 IDEA 系的图形界面使用 Swing 实现,Swing 严重依赖 OpenGL 。由于缺乏完善的支持,目前来说 IDEA 的性能表现很差。
    表现在使用上(我的是 m1 macbook ):
    上下拖动的帧率很低,尤其是 Project 打开的目录很多时,目测不到 10fps 。
    敲代码时 cpu 占用率异常提高,打字有延迟,这个在我以前的 intel macbook 上出现过,m1 很少出现。(与内存无关,可以看到 jetbrains 将这个问题关联到了 2d 渲染性能问题)

    目前在 youtrack 上,这个问题有非常多的关联帖子(还会导致其他莫名奇妙的问题)。
    jetbrains 为了解决这个问题,与 Oracle 合作推出项目:lanai ( https://openjdk.java.net/projects/lanai ),目的是为了实现基于 Metal 框架的 java 2d api,在性能上有大幅提升。

    今天 jetbrains 更新了进度,OpenJDK17 将正式支持 Metal,本月 JetBrains 也将推出基于 OpenJDK17 的 JetBrains Runtime 。
    追踪: https://youtrack.jetbrains.com/issue/JBR-745
    31 条回复    2021-09-05 19:55:10 +08:00
    Badlion
        1
    Badlion  
       2021-03-06 19:27:17 +08:00 via iPhone
    很期待,不过更期待远程开发功能,不然我可能不会从 vscode 阵营回来了。
    imzcg2
        2
    imzcg2  
       2021-03-06 20:03:01 +08:00 via Android
    16 寸 m1 我来了,等等党永不认输。
    tagtag
        3
    tagtag  
       2021-03-06 20:40:43 +08:00
    打字确实卡的要命
    liuzhihang
        4
    liuzhihang  
       2021-03-06 20:50:10 +08:00 via iPhone
    我 13 寸 19 款的 mac 用 4k 显示器的时候,如果外接显示器分辨率设置过高,就会很卡。 也是这个原因么?

    这个意思是后面更新了,就会改善这个情况么?还是需要换电脑。

    同时 UI 是不是也会发生改变?
    gainsurier
        5
    gainsurier  
       2021-03-06 20:51:46 +08:00
    别人家的 jdk 版本.....酸呐
    chrisia
        6
    chrisia  
    OP
       2021-03-06 21:02:50 +08:00
    @liuzhihang 是这个原因,4k 以上分辨率尤为严重,等这个月的更新吧,ui 大概率是不会变的。
    4k 分辨率卡的问题可以追踪这个帖子,也是 OpenGL 导致的: https://youtrack.jetbrains.com/issue/JBR-526
    chrisia
        7
    chrisia  
    OP
       2021-03-06 21:04:57 +08:00
    @imzcg2 intel 也有这个问题。等下一代确实是最好的选择😂
    liuzhihang
        8
    liuzhihang  
       2021-03-06 21:09:06 +08:00 via iPhone
    @chrisia 太感谢你了。我看着文章的大概意思也是这个。但是不太确定。很期待更新。

    但是那块 Swing 那块不知道会不会产生其他影响。
    teddybun
        9
    teddybun  
       2021-03-06 21:38:41 +08:00
    @Badlion code with me 已经有了,不过我还没有体验,2021.1EAP 是插件,beta1 是内置
    Badlion
        10
    Badlion  
       2021-03-07 00:15:27 +08:00
    @fshuqing 看了一下,感觉更像一个多人远程协作平台。而我需要的仅仅是把项目跑在远程,在远程调试而已。而远程端不需要有 UI 。
    divilkcvf
        11
    divilkcvf  
       2021-03-07 00:19:02 +08:00 via iPhone
    OpenGL 只是标注 deprecated 而已,并没有弃用啊,Mac 上大部分游戏都是基于 OpenGL,比如 Dota2,一样运行得很好,并没有变卡……

    不过苹果的 OpenGL 似乎永远停留在了 4.1
    chrisia
        12
    chrisia  
    OP
       2021-03-07 00:40:15 +08:00
    @divilkcvf 是 deprecated,我的咨询来源: https://blog.jetbrains.com/platform/2020/11/metal-for-intellij-platform/
    我以前都管 deprecated 叫做已废弃,翻译成已过时是不是好点?
    chrisia
        13
    chrisia  
    OP
       2021-03-07 00:45:57 +08:00
    @divilkcvf 关于游戏这块,确实 OpenGL 的游戏都有不错的性能表现。但是在 idea 上下滚动会有明显的卡顿,所以我很好奇应该谁背锅。而且就官网给出的测试结果来看好像在大多数场景下,Metal 并没有比 OpenGL 强多少。
    felixcode
        14
    felixcode  
       2021-03-07 02:44:46 +08:00 via Android
    之前只看到说好用流畅的,原来还有这样的问题
    mxalbert1996
        15
    mxalbert1996  
       2021-03-07 02:51:17 +08:00 via Android
    @divilkcvf deprecated 一般翻译为已弃用
    ooops
        16
    ooops  
       2021-03-07 04:39:56 +08:00
    @chrisia 一般来说 deprecated 表示标记为废弃,状态是还能用。下一个阶段就是移除代码或者不再支持 removed 。你的表述也没什么问题
    ewBuyVmLZMZE
        17
    ewBuyVmLZMZE  
       2021-03-07 07:02:38 +08:00
    Apple M1 Lanai builds will be available after integration into JDK17 (it's planned this month). We (at JetBrains) also working on our new JBR (JetBrains Runtime) version based on OpenJDK17 and we're definitely going to add Metal support there.

    我看了一下 Lanai 的状态,应该是确定在 JDK 17 发布无疑。所以个人理解 JetBains 的目前主要工作是将 JBR 迁移到 新的 LTS 版本 JDK 17 。
    Cbdy
        18
    Cbdy  
       2021-03-07 08:54:47 +08:00 via Android
    JDK16 还有 10 天才 GA 啊,这就上 17 了😳
    lqf96
        19
    lqf96  
       2021-03-07 09:18:16 +08:00 via iPhone
    @divilkcvf OpenGL 不再维护以后似乎性能就不怎么提高了…有一个兼容库 MoltenGL 就是把 OpenGL 重新用 Metal 实现了一遍,然后他们的卖点就是效率高过苹果内建的实现…
    liuzhihang
        20
    liuzhihang  
       2021-03-07 13:04:41 +08:00
    @chrisia 刚才测试了一下,我把自己的显示器分辨率设置为 3840 * 2160 ,IDEA 版本为 2020.3.2

    IDEA 系统字体 16 编辑区字体 24

    打了很长很长一串中文,按空格很快就上屏幕了,感觉不是很卡。 比我之前用的好多了。

    这么说下个版本会更好。
    chrisia
        21
    chrisia  
    OP
       2021-03-07 16:03:55 +08:00
    @liuzhihang 对,字体大一些流畅很多,所以是渲染性能背锅。下个版本应该有较大的提升,期待一下吧。
    dioxide
        22
    dioxide  
       2021-03-07 21:17:03 +08:00
    印象中 idea 打字卡顿(特别是中文)的问题 已经存在了不止 1 年了.
    lonenol
        23
    lonenol  
       2021-03-07 22:20:41 +08:00
    非 m1 的 MPB 在 2020.3 是真的卡的不能用。。回退版本很久了,希望 2021 能正常使用吧
    LukeChien
        24
    LukeChien  
       2021-03-08 14:42:51 +08:00 via Android
    那非 m1 的 mac 也能用,大不了已经装个 OpenJDK17
    fatelight
        25
    fatelight  
       2021-03-09 07:36:35 +08:00
    chrome 卡顿掉帧老 bug 也没修复
    zhanggang807
        26
    zhanggang807  
       2021-03-09 10:22:48 +08:00
    我也遇到了这个问题,15 年的 mbp 和 哪个版本的 idea 打字 cpu 彪的厉害。。。
    后来升级 mbp 和 idea 后问题得到缓解
    peterzhang0602
        27
    peterzhang0602  
       2021-04-13 15:18:53 +08:00
    推出了嘛
    chrisia
        28
    chrisia  
    OP
       2021-04-13 16:48:05 +08:00
    @peterzhang0602 好像还没
    SirCarol
        29
    SirCarol  
       2021-05-20 22:14:30 +08:00
    针对「上下拖动的帧率很低,尤其是 Project 打开的目录很多时,目测不到 10fps 」这一问题,我也遇到了同样的情况。在网上搜索之后,发现可以在 IDEA 中安装 Atom Material Icons 插件,即可解决拖动卡顿的问题。
    chrisia
        30
    chrisia  
    OP
       2021-05-21 20:29:18 +08:00
    @SirCarol 是的,看来是 idea 的问题
    SirCarol
        31
    SirCarol  
       2021-09-05 19:55:10 +08:00
    @SirCarol # 107 如果不想安装上面的插件,还有一个更好的方法解决该问题。Help -> Edit Custom Vm Options,填入如下信息:

    -Dsun.java2d.opengl=true
    -Dsun.java2d.opengl.fbobject=false

    然后重启 IDEA 即可。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2324 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:11 · PVG 00:11 · LAX 09:11 · JFK 12:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.