линукс на десктопе
Пользуюсь линуксом на личном лептопе (Lenovo X230 с 16Gb RAM) и макосью на рабочем (какой-то топовый 15" макбук про). Когда садился за личный лептоп программировать на Go в Gogland, постоянно страдал от тормозов при отрисовке редактора. Всё было настолько плохо, что простого перемещения курсора приходилось ждать по две-три секунды. Я сильно сомневался что дело в Gogland, поскольку IntelliJ IDEA (IDE построенная на той же самой платформе, что и Gogland) работающая на макбуке вообще сколько нибудь заметно не тормозила на гораздо более сложных файлах (тысячи строк говнокода).
Сегодня таки решил разобраться в чём проблема. Оказалось в JDK8 по умолчанию включили код рендеринга через XRender, который в принципе должен рисовать быстрее. Проблема заключается в том, что его поведение немножко отличается от поведения Java2d на других платформах: он не отобразит изменения на экране пока не переполнится буфер команд Xlib, либо пока не будет вызван Toolkit.sync().
В JetBrains считают, что это не их проблема и добавлять Toolkit.sync() не собираются: https://youtrack.jetbrains.com/issue/IDEA-150262
Разработчики OpenJDK тем временем тоже не спешат фиксить эту регрессию поскольку предложенный фикс замедлит рендеринг когда X работает по сети (что конечно является основным юзкейсом для Java программ): https://bugs.openjdk.java.net/browse/JDK-8068529
К счастью всё лечится отключением xrender, достаточно добавить строчку "-Dsun.java2d.xrender=false" в gogland64.vmoptions. Типичный linux desktop экспириенс - без допиливания напильником в нетривиальных местах будешь жрать говно с лопаты.