Little fix for high CPU utilization in RustRover since 2025.2

I've been struggling with this problem for a while: since 2025.2, RustRover is using all the cores at 90-95% when typing code, causing the system to frequently freeze.

Others are clearly stuck with the same issue, so I'd like to share the tip that the JetBrains teams came up with, after I spent a lot of time testing / pinpointing the problem and they analyzed the data.

Sometimes when the user settings are imported between version, the Autoreparse delay option is set to 0 ms, which triggers that problem. Just set it back to its default value, 300 ms, or a little lower or higher according to your preference.

It doesn't remove the new micro-freeze events entirely, but it makes them much less frequent and reduces the CPU usage dramatically. I'm sure they'll add a check for that value in a future update, but in the mean time, it's worth a shot.

To be clear: I'm not using any of the AI / full line completion options. Actually, all the AI/ML plugins are uninstalled, linter-on-the-fly disabled, etc. With the same minimal set of options, the usage just got from using a tiny amount of CPU in 2024.x to using it fully in 2025.2. That's what that fix addresses.

EDIT: This bug should be fixed since 2025.2.3 or 2025.3 EAP 3.

Adding one/all of those lines to Help/Edit Custom VM Options... might help, too:

  • -Djava.util.concurrent.ForkJoinPool.common.parallelism=8: adjust the 8 to the number of virtual cores assigned to the IDE's pool, depending on your CPU—mine has 16, so that's half of them.
  • -Xms2g: increases the initial heap size to 2 GB
2 Likes

I'll take the micro freezes over the mega freezes! Thanks for the heads up, I'll need to check for that. I recently hit the on the fly linting suddenly making editing fall over completely, I feel like that was fine earlier too. Performance in general feels like it has gotten significantly worse over the last couple years...

I've also noticed performance issues in the last couple of years, and not only in RustRover or the Rust plugin in IntelliJ, but other languages like Kotlin and Java. It's not easy to find the right strategy, I suppose. Adding more checks to the IDE has an impact, so I just disable those I don't really need (as far as it's possible).

One of the new inspections they suspect may have a toll on the CPU is Borrow checker errors, but I haven't compared. It's disabled at the moment.

The file size has a big impact, too. 2000-2500 lines are the limit on my system (an old-ish but still respectable i7 10700K). Not that it's healthy to keep files bigger than that, but some of my test units are thorough and tend to be in that ballpark. I felt some relief when I split one particular file that had crept to over 3k lines, even though half of it were comments.