sysinfo
A system handler to interact with processes.
Support the following platforms:
- Linux
- Raspberry
- Android
- macOS
- Windows
It also compiles for Android but never been tested on it.
Running on Raspberry
It'll be difficult to build on Raspberry. A good way-around is to be build on Linux before sending it to your Raspberry.
First install the arm toolchain, for example on Ubuntu: sudo apt-get install gcc-multilib-arm-linux-gnueabihf
.
Then configure cargo to use the corresponding toolchain:
Finally, cross compile:
Code example
You have an example into the examples
folder. Just run cargo run
inside the examples
folder to start it. Otherwise, here is a little code sample:
use ;
let mut sys = new_all;
// We display the disks:
println!;
for disk in sys.get_disks
// Network data:
for in sys.get_networks
// Components temperature:
for component in sys.get_components
// Memory information:
println!;
println!;
println!;
println!;
// Number of processors
println!;
// To refresh all system information:
sys.refresh_all;
// We show the processes and some of their information:
for in sys.get_processes
C interface
It's possible to use this crate directly from C. Take a look at the Makefile
and at the examples/src/simple.c
file.
To build the C example, just run:
> make
> ./simple
# If needed:
> LD_LIBRARY_PATH=target/release/
Benchmarks
You can run the benchmarks locally with rust nightly by doing:
> cargo
Here are the current results:
Linux
test bench_new ... bench: 182,536 ns/iter (+/- 21,074)
test bench_new_all ... bench: 19,911,714 ns/iter (+/- 1,612,109)
test bench_refresh_all ... bench: 5,649,643 ns/iter (+/- 444,129)
test bench_refresh_components ... bench: 25,293 ns/iter (+/- 1,748)
test bench_refresh_components_list ... bench: 382,331 ns/iter (+/- 31,620)
test bench_refresh_cpu ... bench: 13,633 ns/iter (+/- 1,135)
test bench_refresh_disks ... bench: 2,509 ns/iter (+/- 75)
test bench_refresh_disks_list ... bench: 51,488 ns/iter (+/- 5,470)
test bench_refresh_memory ... bench: 12,941 ns/iter (+/- 3,023)
test bench_refresh_networks ... bench: 256,506 ns/iter (+/- 37,196)
test bench_refresh_networks_list ... bench: 266,751 ns/iter (+/- 54,535)
test bench_refresh_process ... bench: 117,372 ns/iter (+/- 8,732)
test bench_refresh_processes ... bench: 5,125,929 ns/iter (+/- 560,050)
test bench_refresh_system ... bench: 52,526 ns/iter (+/- 6,786)
test bench_refresh_users_list ... bench: 2,479,582 ns/iter (+/- 1,063,982)
Windows
test bench_new ... bench: 7,119,215 ns/iter (+/- 283,002)
test bench_new_all ... bench: 27,364,010 ns/iter (+/- 1,353,879)
test bench_refresh_all ... bench: 3,125,085 ns/iter (+/- 92,479)
test bench_refresh_components ... bench: 1,239,478 ns/iter (+/- 45,790)
test bench_refresh_components_list ... bench: 3,197,295 ns/iter (+/- 91,662)
test bench_refresh_cpu ... bench: 24,973 ns/iter (+/- 1,844)
test bench_refresh_disks ... bench: 52,321 ns/iter (+/- 1,533)
test bench_refresh_disks_list ... bench: 114,756 ns/iter (+/- 3,900)
test bench_refresh_memory ... bench: 581 ns/iter (+/- 25)
test bench_refresh_networks ... bench: 35,231 ns/iter (+/- 2,210)
test bench_refresh_networks_list ... bench: 661,170 ns/iter (+/- 56,636)
test bench_refresh_process ... bench: 1,531 ns/iter (+/- 154)
test bench_refresh_processes ... bench: 1,070,742 ns/iter (+/- 57,539)
test bench_refresh_system ... bench: 1,303,291 ns/iter (+/- 44,538)
test bench_refresh_users_list ... bench: 2,340,562 ns/iter (+/- 83,992)
macOS
test bench_new ... bench: 87,569 ns/iter (+/- 11,078)
test bench_new_all ... bench: 21,445,081 ns/iter (+/- 523,973)
test bench_refresh_all ... bench: 1,915,573 ns/iter (+/- 296,132)
test bench_refresh_components ... bench: 293,904 ns/iter (+/- 63,492)
test bench_refresh_components_list ... bench: 894,462 ns/iter (+/- 161,599)
test bench_refresh_cpu ... bench: 8,636 ns/iter (+/- 1,244)
test bench_refresh_disks ... bench: 937 ns/iter (+/- 97)
test bench_refresh_disks_list ... bench: 25,116 ns/iter (+/- 990)
test bench_refresh_memory ... bench: 2,172 ns/iter (+/- 67)
test bench_refresh_networks ... bench: 183,552 ns/iter (+/- 2,253)
test bench_refresh_networks_list ... bench: 183,623 ns/iter (+/- 11,183)
test bench_refresh_process ... bench: 5,571 ns/iter (+/- 443)
test bench_refresh_processes ... bench: 764,125 ns/iter (+/- 28,568)
test bench_refresh_system ... bench: 333,610 ns/iter (+/- 53,204)
test bench_refresh_users_list ... bench: 16,816,081 ns/iter (+/- 1,039,374)
Donations
If you appreciate my work and want to support me, you can do it here: