DragonKnightOfBreeze / Paradox-Language-Support

IDEA Plugin: Paradox Language Support.
https://windea.icu/Paradox-Language-Support
MIT License
37 stars 4 forks source link

Extreme CPU use when (I think) resolving very large localisation files #31

Closed TTFTCUTS closed 1 year ago

TTFTCUTS commented 1 year ago

Hi there, I've been investigating switching over to using this plugin for the development of Gigastructural Engineering & More, but the scale of the mod is causing some issues.

The sheer amount of localisation entries that we have, particularly in our largest file mean that when resolving loc entries the plugin can push my Ryzen 7 7700X to 100% usage across all cores and well over 90C temperature for upwards of 5 minutes!

The plugin works great, and seems far more stable than cwtools is in vscode, but I would gladly sacrifice its ability to cross-reference loc entries if it meant that it was kinder to my pc.

The easiest way to address this would probably be an option to disable that cross referencing, but if it turns out there's a way to make it more efficient, that would be even better.

Our public repository can be found here if you wish to test things under the same conditions.

Thank you for your hard work.

DragonKnightOfBreeze commented 1 year ago

The PLS plugin developed by me has been made several optimization for memory and cpu usage. Please try the lastest plugin version (1.0.8, will be visible on plugin marketplace soon) and recheck the performace. Until now, the cpu and memory usage during indexing is still not ideal (but it need to be for it's indexing logic), the cpu and momoery usage of code completion and reference resolving should be pretty good for script and localisation files up to thousands of lines.

DragonKnightOfBreeze commented 1 year ago

Besides, you can try:

DragonKnightOfBreeze commented 1 year ago

If what you mention is localisation references ($LOC$), since 1.0.7, the performance to resolve these should be optimized.

TTFTCUTS commented 1 year ago

It seems I was on 0.10.2 before. I just updated to 1.0.7 and will check out performance now.

TTFTCUTS commented 1 year ago

Oh wow, that's an incredible improvement! It only took around 3 seconds even on our main file, which is nearly 20000 lines long.

I think everything is working now, thank you.

I encountered the issues a week or two ago, but I should have checked for a newer version before posting an issue. Apologies for the inconvenience.

DragonKnightOfBreeze commented 1 year ago

The main performance issue is not for localisations, but for ... you can try to find out them XD.