Bug 435943 - Background parsing threads should run at lower priority
Summary: Background parsing threads should run at lower priority
Status: REPORTED
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (Clang-based) (other bugs)
Version First Reported In: 5.6.2
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-04-20 00:55 UTC by Aaron Williams
Modified: 2021-04-27 20:24 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aaron Williams 2021-04-20 00:55:11 UTC
When the background file parser is active it slows KDevelop down to a crawl. This is on a 12-core AMD Threadripper with 128GB of RAM. I suspect that lowering the priority of the background parser may make KDevelop more responsive. Right now while the background parser is running KDevelop is unusable. This is especially a problem with big projects I work on (i.e. the Linux kernel)

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Milian Wolff 2021-04-27 20:19:29 UTC
hey there,

I think I tried that in the past - but it was many years ago. I'd welcome any tests from your side to see if this really helps. I actually doubt that.

I rather think that you are running into some other performance issue. Can you have a look at whether I/O is saturated on your system maybe? What about memory consumption? Though 128GB  is plenty. It could also quite well be that you are running into lock content issues - our old code base is not optimal in that regard (heh, far from it) - and there are still quite some areas where the main thread will try to lock our BKL, which can be quite desastrous with many background cores. That said, with the clang-based language backend at least, the lock contention was reduced massively already, compared to before. Are you maybe parsing large python projects or php projects?

Just for context: my workstation uses the Ryzen 3900X, also with 12 cores and "only" 32gb of RAM. I do note a bit of sluggishness while its parsing a big project from scratch, but it's nowhere near unusable.
Comment 2 Sven Brauch 2021-04-27 20:24:03 UTC
FWIW I have worked on the Linux kernel before in KDevelop, and I would highly recommend excluding the things you don't need from the project. This is especially most things from arch/, most things drom drivers/ and the fs/ directory. Doing so has no disadvantage whatsoever, and parsing the whole linux kernel tree and keeping all symbols in memory will be a straining exercise for whatever IDE you can come up with. ;)