RubyMine 2020.1が遅いときはアンチエイリアス設定をGreyscaleにしてみよう

（2020.7.30追記）
RubyMine 2020.2からはアンチエイリアス設定がGreyscaleモードかNo antialiasingモードの2つしかなくなりました。
Subpixelモードがなくなったことにより、この問題が発生する可能性が低くなったものと思われます。

ちなみにSubpixelモードがなくなったのは「このモードをAppleがサポートしなくなったから」とのことです。

参考情報

- [IntelliJ IDEA 2020\.2 EAP2 Is Here with Advanced Exception Stack Trace Analysis, Emoji Support on Linux, and More – IntelliJ IDEA Blog \| JetBrains](https://blog.jetbrains.com/idea/2020/06/intellij-idea-2020-2-eap2-is-here-with-advanced-exception-stack-trace-analysis-emoji-support-on-linux-and-more/) のコメント欄
- [Subpixel\(LCD\) text is slow with UI font in 2020\.1, switching to greyscale antialiasing helps : IDEA\-238301](https://youtrack.jetbrains.com/issue/IDEA-238301?_ga=2.65538413.27208365.1596074482-307599994.1529997368#focus=streamItem-27-4165651.0-0)

以下の本文はRubyMine 2020.1時代に書いたものです。

## 困っていたこと：RubyMine 2020.1がめちゃくちゃ遅い

RubyMineのバージョンが2020.1に上がってから文字入力がめちゃくちゃ遅くなりました。
どれくらい遅いのかというと、人間のタイピングスピードにIDEがまったく追いついていない、っていうぐらい遅いです。

実際のスピードについては以下のツイートに載せた動画を参考にしてください。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/yusuke?ref_src=twsrc%5Etfw">@yusuke</a> RubyMine 2020.1から日本語入力が超遅いです。この記事( <a href="https://t.co/JEwYPo19He">https://t.co/JEwYPo19He</a> )を見ながらJBR8を設定しましたが改善されませんでした。全速力でタイピングしてこれぐらいの表示スピードです。実際に1行目の半分ぐらいでタイピングはすべて終わってます。他に何か原因は考えられますか？ <a href="https://t.co/fGoRHAlR3p">pic.twitter.com/fGoRHAlR3p</a></p>&mdash; Junichi Ito (伊藤淳一) (@jnchito) <a href="https://twitter.com/jnchito/status/1259615499136102400?ref_src=twsrc%5Etfw">May 10, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 問題が発生した実行環境

僕の実行環境は以下のとおりです。

- RubyMine 2020.1.1
- macOS 10.15.4
- MacBook Pro (13-inch, 2017)
- Memory 16GB

## RubyMineが遅い原因

RubyMineが遅い理由はどうやら4Kディスプレイにあるようです。
僕は普段Mac本体のディスプレイではなく、USB-Cで接続した4Kディスプレイ（EIZO EV2785）を使っているのですが、RubyMineのウインドウを4Kディスプレイで表示したときだけ、この現象が発生しました。
Mac本体のディスプレイに表示したときは、必要十分なスピードで入力できました。

![20200426090206.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/416d04dd-ca23-6664-8af1-b27f59519885.jpeg)


同じような現象はIntelliJ IDEAやPhpStorm、PyCharmといった他のJetBrains製IDEでも発生しているようです。

- [IDE is unusably slow when using a 4K display with scaled resolution on OS X : JBR\-526](https://youtrack.jetbrains.com/issue/JBR-526?p=JRE-526)

## 解決策（というか、軽減策）

下記の情報を参考にして、IDEとEditorのアンチエイリアス設定をSubpixelからGreyscaleに変更すると、2019.3とほぼ同等の入力スピードに戻すことができました。

> Maybe it will help someone: the integrated terminal was extremely slow, I was able to fix the performance issue by changing the Antialiasing to Greyscale for both the editor and IDE.
>
> https://youtrack.jetbrains.com/issue/JBR-526#focus=streamItem-27-4144635.0-0

アンチエイリアス設定はPreferences > Appearance & Behavior > Appearanceで変更できます。

<img width="598" alt="Screen Shot 2020-05-21 at 7.45.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/2cf9e21e-d930-c0d9-346f-1782fbd6a28a.png">

こちらはGreyscaleモードで入力したときの動画です。
これだと人間のタイピングスピードにもほぼ追従できています。

![NyO7vIOBwK.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/a0c7bbfb-e28f-1b2f-cf3d-71df006119bf.gif)

ただし、Greyscaleにすると画面の文字が少し細く（または暗く？）表示されるという副作用があります。

Subpixelモード↓
<img width="566" alt="Screen Shot 2020-05-21 at 7.47.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/59c5e880-4906-bfe4-52a8-ba1ce78eb71b.png">

Greyscaleモード↓
<img width="567" alt="Screen Shot 2020-05-21 at 7.47.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/71ff23e0-087e-befd-24d5-ad2e2ec21be7.png">

また、アンチエイリアスを完全になくすNo antialiasingというモードもありますが、これだとエディタの文字がガタガタして見栄えが悪いので、僕は選択しませんでした。

No antialiasingモード↓
<img width="568" alt="Screen Shot 2020-05-21 at 7.48.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/1262e752-1d9c-2611-4f09-6c0990eabd3d.png">

できればアンチエイリアス設定を変えずに、デフォルトのSubpixelモードで使いたいところですが、この問題は4Kディスプレイ、OS、JVMの兼ね合いに起因しているらしく、根本的な解決にはもうちょっと時間がかかりそうな気がします。

## 参考：あまり効果がなかった対策

JavaのRuntimeをJBR11からJBR8に変更する（もしくはJBR8からJBR11に戻す）と改善するかも、という情報がありましたが、これは効果がありませんでした。

- [日本語入力や貼り付け操作などが不安定です →JBR8を適用してください – 株式会社サムライズム](https://support.samuraism.com/hc/ja/articles/360033223134-%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%85%A5%E5%8A%9B%E3%82%84%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E6%93%8D%E4%BD%9C%E3%81%AA%E3%81%A9%E3%81%8C%E4%B8%8D%E5%AE%89%E5%AE%9A%E3%81%A7%E3%81%99-JBR8%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84)

ちなみに現在、僕のRubyMine 2020.1ではJBR8（jbsdk8u202b1491_osx_x64.tar.gz）を使用しています。

## 情報募集！
その他、この問題を解決するためのいい情報をご存じの方がいましたら、コメント欄等で情報をお願いします🙏

## 謝辞
本件については株式会社サムライズムのユースケさん（[@yusuke](https://twitter.com/yusuke)）に解決のヒントをいただきました。
ユースケさん、どうもありがとうございました！