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

JetBrains 开发工具使用最新的 JBR 提高性能

  •  
  •   huijiewei · 2021-10-05 11:46:38 +08:00 · 6036 次点击
    这是一个创建于 905 天前的主题,其中的信息可能已经有所发展或是发生改变。

    JetBrains Runtime (即 JetBrains 运行时)是一个运行时环境,用于在 Windows,Mac OS X 和 Linux 上 运行 IntelliJ 平台的各种产品。JetBrains Runtime 基于 OpenJDK 项目,并进行了一些修改。这些修改包括:抗锯齿,Linux 上增强的字体渲染,HiDPI 支持,连字,一些官方版本中未提供的针对产品崩溃的修复程序以及其他小的增强功能。

    Snipaste_2021-10-05_11-26-51.png

    目前 JetBrains 的开发工具默认使用基于 JDK11 版本的 JBR,而 JDK11 版本的 java2d 使用 OpenGL 来渲染图形基元。JDK 17 的 java2d 使用了 Metal 框架提供更好的性能,并更好地支持现代 macOS 版本和硬件。所以我们现在可以更换 JBR 版本以提高 macOS 下 JetBrains 开发工具的性能。

    现在我们开始更换开发工具的 JBR

    1. 下载最新的 JBR https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr17b106.1
    2. 更改开发工具的 VM Options, Help -> Edit Custom VM Options, 增加以下参数
    --illegal-access=warn
    -Dsun.java2d.metal=true
    --add-opens=java.desktop/java.awt.event=ALL-UNNAMED
    --add-opens=java.desktop/sun.font=ALL-UNNAMED
    --add-opens=java.desktop/java.awt=ALL-UNNAMED
    --add-opens=java.desktop/sun.awt=ALL-UNNAMED
    --add-opens=java.base/java.lang=ALL-UNNAMED
    --add-opens=java.base/java.util=ALL-UNNAMED
    --add-opens=java.desktop/javax.swing=ALL-UNNAMED
    --add-opens=java.desktop/sun.swing=ALL-UNNAMED
    --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
    --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED
    --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED
    --add-exports=java.desktop/sun.font=ALL-UNNAMED
    --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED
    --add-exports=java.desktop/com.apple.laf=ALL-UNNAMED
    --add-exports=java.desktop/com.apple.eawt.event=ALL-UNNAMED
    

    Snipaste_2021-10-05_11-27-10.png

    1. 安装 Choose Runtime 插件

    Snipaste_2021-10-05_11-27-35.png

    1. 使用 Choose Runtime 插件安装并使用最新的 JBR,Help -> Find Action,搜索 Choose Runtime 并运行

    Snipaste_2021-10-05_11-27-53.png

    点击 ... 按钮浏览并选择第一步下载的 JBR 压缩包,然后点击 Install

    Snipaste_2021-10-05_11-28-13.png

    安装完以后开发工具会自动重启,现在可以看到已经使用了 JDK 17 版本的 JBR

    Snipaste_2021-10-05_11-28-41.png

    https://blog.huijiewei.com/note/jetbrains-jbr-17

    第 1 条附言  ·  2021-10-05 15:26:33 +08:00
    说明下,这个适用于 macOS
    18 条回复    2021-10-09 10:05:45 +08:00
    NowTime
        1
    NowTime  
       2021-10-05 11:48:14 +08:00 via Android
    可以,待会试试
    wen704
        2
    wen704  
       2021-10-05 11:56:19 +08:00 via Android
    可以,国庆后去公司试下
    leaves615
        3
    leaves615  
       2021-10-05 12:18:56 +08:00
    非常棒。
    bomb77
        4
    bomb77  
       2021-10-05 12:46:20 +08:00
    我不知道自己什么情况,配置了之后会导致 glang 起不来
    如果出现这样的问题,可以去 jetbrains 对应的文件夹,删除 xxx.jdk 文件,清除增加的 xxx.vmoptions 内容,可以恢复之前的配置
    PDX
        5
    PDX  
       2021-10-05 14:07:57 +08:00
    nice
    echohey
        6
    echohey  
       2021-10-05 14:13:47 +08:00
    @bomb77 也碰见了,用 idea.bat 启动看了下报错,的确是 vmoptions 有些问题,不过没深究,删了就好了,
    prenwang
        7
    prenwang  
       2021-10-05 14:19:18 +08:00
    macos 下有个全屏问题, 切换到全屏无法退出全屏, 也无法切换屏幕, 搜索桌面切换背景全黑, 无法切换到其他任何应用, 只能在内置终端 kill
    wzw
        8
    wzw  
       2021-10-05 14:21:59 +08:00
    有很大提升吗? 特别是 Goland 的 debug 的时候
    stimw
        9
    stimw  
       2021-10-05 16:00:24 +08:00 via Android
    官方会更新到之后的版本么?
    varzy
        10
    varzy  
       2021-10-05 17:09:49 +08:00 via iPhone
    感谢楼主,收藏了。国庆回单位了试一试
    hronro
        11
    hronro  
       2021-10-05 19:34:51 +08:00
    为啥官方不用最新的呢?应该还不稳定吧
    br00k
        12
    br00k  
       2021-10-05 21:55:43 +08:00
    看 JDK17 Metal 和 OpenGL 的对比,提升了挺多的。😂
    Jwyt
        13
    Jwyt  
       2021-10-06 00:25:24 +08:00 via Android
    可以 回去试下
    jackytang520
        14
    jackytang520  
       2021-10-06 07:54:39 +08:00
    昨天晚上试了一下成功了,目前没发现什么问题
    jackytang520
        15
    jackytang520  
       2021-10-06 08:46:28 +08:00
    @prenwang 我也有同样的问题,还是先用默认的吧
    wen704
        16
    wen704  
       2021-10-06 09:46:11 +08:00
    突然发现一个问题,如果未来 JB 产品自带的 JDK 版本更新了,而现在操作选定指定的新版本 Runtime,会不会就一直被限定在自己选择的版本,但是自己好像也不知道 JB 产品自带的 JDK 版本是不是更新了
    smy14520
        17
    smy14520  
       2021-10-08 16:37:35 +08:00
    发现一个问题, Command+~ 没法在应用之间切换了.
    Vitta
        18
    Vitta  
       2021-10-09 10:05:45 +08:00
    我的 appcode 挂了打不开了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3747 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:37 · PVG 18:37 · LAX 03:37 · JFK 06:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.