summaryrefslogtreecommitdiff
path: root/Applications/SystemMonitor
AgeCommit message (Collapse)Author
2021-01-12Applications: Move to Userland/Applications/Andreas Kling
2021-01-11Vector: Implement `find`, `find_if`, `find_first_matching` in terms of ↵Lenny Maiorani
`AK::find*` Problem: - The implementation of `find` is coupled to the implementation of `Vector`. - `Vector::find` takes the predicate by value which might be expensive. Solution: - Decouple the implementation of `find` from `Vector` by using a generic `find` algorithm. - Change the name of `find` with a predicate to `find_if` so that a binding reference can be used and the predicate can be forwarded to avoid copies. - Change all the `find(pred)` call sites to use `find_if`.
2021-01-09SystemMonitor: Add args parsing for opening a specific tabTheMorc
This allows SystemMonitor to parse -t or -open-tab argument to open a specific tab. (ex. network, interrupts etc.)
2021-01-05SystemMonitor: Beef up CPU and memory graphsTom
We now show the total CPU usage as well as the kernel portion. For the memory graphs we show the amount of committed memory, actually allocated memory, and the portion of the kernel heap.
2021-01-04Everywhere: Use GUI::CommonActions::make_about_action()Andreas Kling
2021-01-03SystemMonitor: Re-use the /proc/all file descriptor when updatingTom
This makes it more likely to be able to get statistics when resources are scarce.
2021-01-03LibCore: Report error condition when reading process statistics failedTom
2021-01-01Kernel: Merge PurgeableVMObject into AnonymousVMObjectTom
This implements memory commitments and lazy-allocation of committed memory.
2020-12-30LibGFX: Move default_xxx_font() methods from Font to FontDatabaseStephan Unverwerth
When we have an abstract font class it makes no sense to keep these methods in the Font class.
2020-12-30SystemMonitor: Use new-style widget size constraintsAndreas Kling
This is a lot more expressive in C++ as well, not just in GML. :^)
2020-12-28LibGUI: Make GUI::FileIconProvider::icon_for_executable() a public APIAndreas Kling
This way we can use it instead of icon_for_path() in a bunch of places and avoid loading the full FileIconProvider configuration.
2020-12-27SystemMonitor: Fetch process icons from their executableAndreas Kling
Instead of using the extremely hackish icon_id field in /proc/all, we now retrieve process icons from their executable by using GUI::FileIconProvider.
2020-12-21Kernel: Improve time keeping and dramatically reduce interrupt loadTom
This implements a number of changes related to time: * If a HPET is present, it is now used only as a system timer, unless the Local APIC timer is used (in which case the HPET timer will not trigger any interrupts at all). * If a HPET is present, the current time can now be as accurate as the chip can be, independently from the system timer. We now query the HPET main counter for the current time in CPU #0's system timer interrupt, and use that as a base line. If a high precision time is queried, that base line is used in combination with quering the HPET timer directly, which should give a much more accurate time stamp at the expense of more overhead. For faster time stamps, the more coarse value based on the last interrupt will be returned. This also means that any missed interrupts should not cause the time to drift. * The default system interrupt rate is reduced to about 250 per second. * Fix calculation of Thread CPU usage by using the amount of ticks they used rather than the number of times a context switch happened. * Implement CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE and use it for most cases where precise timestamps are not needed.
2020-12-21Build: Embed application icons directly in the executables.William Marlow
New serenity_app() targets can be defined which allows application icons to be emedded directly into the executable. The embedded icons will then be used when creating an icon for that file in LibGUI.
2020-12-21Everywhere: Switch from (void) to [[maybe_unused]] (#4473)Lenny Maiorani
Problem: - `(void)` simply casts the expression to void. This is understood to indicate that it is ignored, but this is really a compiler trick to get the compiler to not generate a warning. Solution: - Use the `[[maybe_unused]]` attribute to indicate the value is unused. Note: - Functions taking a `(void)` argument list have also been changed to `()` because this is not needed and shows up in the same grep command.
2020-12-02SystemMonitor: Add Interrupts tabLuke
I was looking through the proc folder, noticed this and thought "why not?" It's setup as an updating model because of the call count, however, the call count doesn't appear to be working right now.
2020-11-15Everywhere: Add missing <AK/ByteBuffer.h> includesAndreas Kling
All of these files were getting ByteBuffer.h from someone else and then using it. Let's include it explicitly.
2020-11-02Applications: Use GUI::Icon::default_icon to set application iconBrendan Coles
2020-10-06SystemMonitor: Use new format functions.asynts
2020-09-25Meta+Applications: Make clang-format-10 cleanBen Wiederhake
2020-09-22SystemMonitor: Wrap file descriptor and unveiled paths model into a ↵Tibor Nagy
SortingProxyModel
2020-09-22SystemMonitor: Fix assert when sorting by the "Page map" columnTibor Nagy
2020-09-22SystemMonitor: Wrap adapters and sockets model into a SortingProxyModelTibor Nagy
2020-09-22SystemMonitor: Add sorting key to the devices modelTibor Nagy
2020-08-27Base: Move 16x16 common icons to /res/icons/16x16/thankyouverycool
Drops the '16' suffix from filenames. Resizes inconsistent audio-volume icons to intended size.
2020-08-26LibGUI: Rename table view's "cell painting delegate" to "column *"Andreas Kling
What you install with this API is a delegate that manages painting of all the items in a specific column, so let's make the API reflect that.
2020-08-26LibGUI: Move table view headers into their own widgetAndreas Kling
This patch introduces the HeaderView class, which is a widget that implements the column headers of TableView and TreeView. This greatly simplifies event management in the view implementations and also makes it much easier to eventually implement row headers.
2020-08-24SystemMonitor: Tweak processor feature display a little bitAndreas Kling
Flatten the CPU features array instead of showing it as raw JSON data.
2020-08-23SystemMonitor: Use bottom-side tabs for the per-process info tabsAndreas Kling
Let's try this out and see how it feels! :^)
2020-08-21SystemMonitor: Add a Processors tabLuke
2020-08-17SystemMonitor: Uninitialized struct member in ProcessModel, found by CoverityBrian Gianforcaro
This is really a nop, as the cpu_percent is computed later. Zero the value just to keep things sane.
2020-08-16LibGUI+DevTools+Applications: Use ModelIndex::data() in many placesAndreas Kling
This way you don't have to keep track of which model it came from.
2020-08-16LibGUI: Simplify TableCellPaintingDelegate API slightlyAndreas Kling
No need to pass the Model *and* a ModelIndex, the index knows which model it belongs to anyway.
2020-08-16LibGUI: Move GUI::Model::Role to GUI::ModelRoleAndreas Kling
This is preparation for using ModelRole in the ModelIndex API.
2020-08-16SystemMonitor: Invalidate ProcessModel indexes when necessaryAndreas Kling
If the process table grows or shrinks, we need to invalidate all the ProcessModel indexes. This is not great, but it's the most precise invalidation we can do at the moment.
2020-08-16LibGUI: Make model sorting imperative and move order to AbstractViewAndreas Kling
Instead of SortingProxyModel having a column+order, we move that state to AbstractView. When you click on a column header, the view tells the model to resort the relevant column with the new order. This is implemented in SortingProxyModel by simply walking all the reified source/proxy mappings and resorting their row indexes.
2020-08-16SystemMonitor: Move memory graph caption from KB to KiBNico Weber
This changes the graph caption from KB to KiB, but it keeps just "K" instead of "KiB" for all the numbers in columns in the table, since "K" is fairly well-established as abbreviation of "KiB" (the SI prefix is lower-case), and space is at a premium here.
2020-08-16Everywhere: Consolidate human_readable_size() implementationsNico Weber
Let's use the one in AK/NumberFormat.h everywhere. It has slightly different behavior than some of the copies this removes, but it's probably nice to have uniform human readable size outputs across the system.
2020-08-16AK: Rename KB, MB, GB to KiB, MiB, GiBNico Weber
The SI prefixes "k", "M", "G" mean "10^3", "10^6", "10^9". The IEC prefixes "Ki", "Mi", "Gi" mean "2^10", "2^20", "2^30". Let's use the correct name, at least in code. Only changes the name of the constants, no other behavior change.
2020-08-15SystemMonitor: ProcessStack is now ThreadStackBen Wiederhake
This is a follow-up to #3095. In particular: https://github.com/SerenityOS/serenity/pull/3095#discussion_r469113354
2020-08-12SystemMonitor: Show PPID, PGID, SIDBen Wiederhake
With this information, it's a bit easier to intuit the current 'process tree'. If you're reading this, can I convince you to implement a nice process tree for SystemMonitor? It could be via PPID (unbounded depth), or SID+PGID (depth 3). Or something else entirely :D
2020-08-12SystemMonitor: Display the stack of only the selected threadBen Wiederhake
This uses the new ProcFS interface at /proc/<pid>/stacks/<tid>
2020-08-04SystemMonitor: Replace custom ProcessTableView with just GUI::TableViewAndreas Kling
This class was added in the very early days of LibGUI, when I wasn't quite sure if subclassing table views made sense or not.
2020-08-04SystemMonitor: Disown child processes after spawningAndreas Kling
2020-08-03SystemMonitor: Provide new 'Inspect' actionBen Wiederhake
2020-08-03SystemMonitor: Use icon for 'Profile' actionBen Wiederhake
2020-08-03SystemMonitor: Try to keep focus in 'Stacks'Ben Wiederhake
2020-08-03SystemMonitor: Split up kmalloc labelsBen Wiederhake
Otherwise, the numbers overflow the space after a while.
2020-08-01Applications: Stop setting initial window locationPeter Elliott
This will let the WindowManager choose the location of the window
2020-07-18System Monitor: Sort Address column in memory map numericallyNico Weber