Issue: #96 - Garbage collect inodeproc on each ui refresh. #203
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @raboof ,
I've implemented garbage collection for inodeproc.
It releases the members for exited processes on each ui refresh.
My concern about this PR, is performance impact.
The time complexity of garbage_collect_inodeproc is O(MlogN), (M: inode number, N: process number).
In my desktop PC (Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz), it takes around 1-4ms.
If you think it's critical, I guess we can thin out the garbage collection timing.
I'm not sure that this is the exact reason of #96 .
But when I've tried to reproduce memory leak with valgrind for 1 week,
almost all memory leak occur within members of inodeproc.
I know they are not leaked, because inodeproc hold their pointer.
But inode space is very huge, so I guess it's better to release unnecessary members.