* fmt
* temp work
* get yes/no working
* cleanup
* fill out some more buttons
* conditional compilation
* update
* update docs
* wait this just works
* like 80% of the way there
* some stuff around the killing screen
* mouse works
* done!
* clippy
* more stuff
* fix some imports for windows
* android fixes
* oop
* ahh
* hmm
* refactor: add new method of storing timeseries data
* mostly finish adding data
* tmp
* migrate over to separate lib
* prepare to migrate over to new timeseries storage
* prepare to migrate frozen state
* migrate frozen state
* name
* migrate data collection
* migrate network
* fix some stuff
* fix a panic from bad pruning
* Fix pruning issues
* migrate RAM
* migrate swap
* migrate cache label
* refactor out to function
* migrate ram points
* migrate swap points
* migrate cache points
* migrate arc
* migrate gpu, remove a bunch of state code around force update
* rename cache, also some comments
* some temp cleanup
* migrate disk
* comments to remind me above fixmes, fix bug around time graph spans
* migrate load avg
* port temps
* style
* fix bug wiwth left edge gap
* partial migration of cpu, reorganize data file structure
* migrate cpu
* some cleanup
* fix bug with cpu widget + clippy
* start some small optimization work
* fix some things for some platforms
* refactor: rename data_collection to collection
* refactor: only process temp type in data eat step
* flatten components folder a bit
* partially migrate to new graph system and fix cpu bug
* driveby migration of process list to reduce allocs + more migration of points drawing
* revert the collection change
Forgot that I cut a new `Data` on each collection so that change was
useless.
* port over network stuff...
* fully migrate network, and fix some log bugs while we're at it
This is something I never noticed, but the log of 0 is inf - so there
were gaps in the lines when using log scaling!
* fix cpu colour in all mode
* clean up some disk table stuff
* refactor: lines
* shift around some stuff in Cargo.toml
* some docs
* some more cargo stuff
* clean up a bunch of stuff after making things less public
* clippy lints
* a lot more cleanup
* clippy
* fix some errors
* fix for windows
* other: organize some utility function files
* deps: remove kstring
* refactor: some naming changes
* refactor: some more small refactoring/naming changes
* simplify to_cell to return a Cow
* enable lints
* refactor: iteratively detect ASCII and build string when truncating
* more tests
* test going by usize
* Revert "test going by usize"
This reverts commit 4fe71260e7.
* Fixed uninlined args
First ran this, and fixed a few more similar issues by hand
```
cargo clippy --workspace --fix --benches --tests --bins -- -A clippy::all -W clippy::uninlined_format_args
```
Note that in a few cases, format args were passed by ref - which is actually a tiny perf hit - compiler would not be able to optimize them.
* revert change here
since it contains a non-inlineable variable I'm not a fan of using it partially here
* revert
given the other formats above/below I would prefer keeping it like this
---------
Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
* feature: show running time of processes
* fix clippy
* add time searching
* update changelog
* use safer duration for linux in case of 0
* some cleanup
* quick hack to deal with some Windows processes returning unix epoch time as start time
---------
Co-authored-by: Clement Tsang <34804052+ClementTsang@users.noreply.github.com>
Migrates existing heim-based disk data collection code off of it to either sysinfo or vendored code based on heim/sysinfo/other sources. This also allows us to remove heim completely from bottom.
---
* refactor: fix some refresh code
* remove async from the freebsd code
* some file/implementation organization
Turns out sysinfo lacks a lot of data I need. I can still use it for the
Windows disk usage implementation, but I'm probably going to manually
implement macos/linux usage and all io usage stats.
* more restructuring
* Some other fixes
* remove futures
* ready for some big changes?
* big changes
* linux io + reads
* use lossy conversion for mount point
* add windows refresh
* so long heim, and thanks for all the fish
* fix filter behaviour, remove string allocation when reading lines
* rename unix -> system for more accurate file struct representation
* fix freebsd
* port generic unix partition code
* add bindings and fix errors
* finish macOS bindings for I/O
* disable conform check, this seems to... make disk I/O work on macOS?????
* fix linux
* add safety comments
* more comments
* update changelog
* changelog
* We're going full 0.9.0 for this
* update lock
* fix some typing
* bleh
* some file management
* hoist out get_disk_usage
* fix some stuff for Windows
* typing and remove dead code allow lint
* unify typing
* fix
* fix 2
* macOS fix
* Add bindings file for windows
* add windows implementation
* fix macos
* other: group all dataset draws in a time chart
We used to draw each data set separately as a new canvas. Now, in one
canvas, we draw all datasets.
Note that this changes how dataset lines are drawn - rather than
drawing one on top of another, it now draws kinda all at once. This
effect is *kinda* a bit better IMO, but it might also look a bit
more cluttered.
* other: optimize truncate_text
Flamegraphs showed that this area seems to be a bit heavy at times with
some inefficient use of iterators and collection. This change should
hopefully optimize this a bit by reducing some collections or
reallocations.
There can also be some further optimizations with less allocations from
callers.
* Reduce some redundant draws
* other: don't use manual map for color name mapping
I actually don't know why I was doing it like that before.
This commit removes the phf crate, as it's not needed anymore.
* update test
* other: deduplicate sorts, sort proc by PID by default
* add proc test
* remove sort in Windows
* fix tree
* fix test
* Remove mut
* Add comment on sorting processes