On my Linux box (Fedora 43 ppc64le) I wrote a simple benchmarking
procfs crate benchmark
1. all_processes() call only: 8.886µs
2. all_processes() + iterate (count only): 2.555386ms (530 processes)
3. all_processes() + stat(): 11.22329ms (530 processes)
4. all_processes() + stat() + status(): 33.602079ms (530 processes)
5. all_processes() + stat() + status() + cmdline(): 37.588174ms (530 processes)
6. Full scan (stat+status+cmdline+exe+statm): 45.371686ms (530 processes)
7. Raw /proc read (stat only): 8.524172ms (530 processes)
8. Raw /proc read (stat + status): 18.856123ms (530 processes)
--- Thread scanning tests ---
9. all_processes() + stat() + tasks() iterate: 19.99895ms (530 procs, 964 threads)
10. all_processes() + stat() + tasks() + task.stat(): 33.641131ms (530 procs, 964 threads)
11. Raw /proc + task dir iterate: 12.950577ms (530 procs, 964 threads)
12. Raw /proc + task stat read: 27.881418ms (530 procs, 964 threads)
--- Summary ---
Process count: ~530
Thread count: ~964
it's seems to me there is a little overhead, is it expected?
On my Linux box (Fedora 43 ppc64le) I wrote a simple benchmarking
it's seems to me there is a little overhead, is it expected?