mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
Profiler: Add help documentation
This commit is contained in:
parent
8f867df31a
commit
0ffc06b795
Notes:
sideshowbarker
2024-07-18 21:57:14 +09:00
Author: https://github.com/bcoles Commit: https://github.com/SerenityOS/serenity/commit/0ffc06b7958 Pull-request: https://github.com/SerenityOS/serenity/pull/5509
47
Base/usr/share/man/man1/Profiler.md
Normal file
47
Base/usr/share/man/man1/Profiler.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
## Name
|
||||
|
||||
Profiler - Serenity process profiler
|
||||
|
||||
## Synopsis
|
||||
|
||||
```**sh
|
||||
$ Profiler [--pid PID] [perfcore file]
|
||||
```
|
||||
|
||||
## Description
|
||||
|
||||
Profiler facilitates process performance profiling and provides a GUI offering
|
||||
visual graph and tree representations to easily navigate generated profiling
|
||||
information.
|
||||
|
||||
If no arguments are provided, a window containing a list of running processes
|
||||
is presented, allowing a process to be selected for profiling.
|
||||
|
||||
Profiling information is written to `perfcore.<pid>` in the working directory
|
||||
and opened immediately for browsing following termination of profiling.
|
||||
|
||||
Profiler can also load performance information from previously created
|
||||
`perfcore` files.
|
||||
|
||||
## Options
|
||||
|
||||
* `-p PID`, `--pid PID`: PID to profile
|
||||
|
||||
## Examples
|
||||
|
||||
Profile running Shell process:
|
||||
|
||||
```sh
|
||||
$ Profiler -p $(pidof Shell)
|
||||
```
|
||||
|
||||
Open a previously created perfcore file for browsing:
|
||||
|
||||
```sh
|
||||
$ Profiler perfcore.123
|
||||
```
|
||||
|
||||
## See also
|
||||
|
||||
* [`perfcore`(5)](../man5/perfcore.md)
|
||||
|
|
@ -7,4 +7,4 @@ set(SOURCES
|
|||
)
|
||||
|
||||
serenity_app(Profiler ICON app-profiler)
|
||||
target_link_libraries(Profiler LibGUI LibX86 LibCoreDump)
|
||||
target_link_libraries(Profiler LibGUI LibDesktop LibX86 LibCoreDump)
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <LibCore/EventLoop.h>
|
||||
#include <LibCore/ProcessStatisticsReader.h>
|
||||
#include <LibCore/Timer.h>
|
||||
#include <LibDesktop/Launcher.h>
|
||||
#include <LibGUI/Action.h>
|
||||
#include <LibGUI/Application.h>
|
||||
#include <LibGUI/BoxLayout.h>
|
||||
|
@ -80,6 +81,15 @@ int main(int argc, char** argv)
|
|||
auto& profile = profile_or_error.value();
|
||||
|
||||
auto window = GUI::Window::construct();
|
||||
|
||||
if (!Desktop::Launcher::add_allowed_handler_with_only_specific_urls(
|
||||
"/bin/Help",
|
||||
{ URL::create_with_file_protocol("/usr/share/man/man1/Profiler.md") })
|
||||
|| !Desktop::Launcher::seal_allowlist()) {
|
||||
warnln("Failed to set up allowed launch URLs");
|
||||
return 1;
|
||||
}
|
||||
|
||||
window->set_title("Profiler");
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
window->resize(800, 600);
|
||||
|
@ -144,6 +154,9 @@ int main(int argc, char** argv)
|
|||
view_menu.add_action(percent_action);
|
||||
|
||||
auto& help_menu = menubar->add_menu("Help");
|
||||
help_menu.add_action(GUI::CommonActions::make_help_action([](auto&) {
|
||||
Desktop::Launcher::open(URL::create_with_file_protocol("/usr/share/man/man1/Profiler.md"), "/bin/Help");
|
||||
}));
|
||||
help_menu.add_action(GUI::CommonActions::make_about_action("Profiler", app_icon, window));
|
||||
|
||||
app->set_menubar(move(menubar));
|
||||
|
|
Loading…
Reference in a new issue