Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CPU Profiling Tool To ACTS #1273

Closed
Scott-James-Hurley opened this issue May 26, 2022 · 0 comments · Fixed by #1274
Closed

Add CPU Profiling Tool To ACTS #1273

Scott-James-Hurley opened this issue May 26, 2022 · 0 comments · Fixed by #1274

Comments

@Scott-James-Hurley
Copy link
Contributor

Adding a tool to profile CPU usage for the ACTS project will allow developers to identify parts of the code that are not as performant as expected, making it easier to find and resolve performance bottlenecks.

After an investigation gperftools seems to be the most promising solution. It offers a sampling-based CPU profiler which means less effort on the developers' part to start measuring CPU performance.

As a bonus it also includes a memory profiler and heap checker for measuring memory allocations and testing for memory leaks respectively.

This issue would involve:

  • adding build options for enabling profiling
  • adding documentation on how to install any dependencies, details on basic usage and resources for further reading on relevant topics
  • anything else to make it easier for developers to profile the code.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue May 27, 2022
Separate build options for enabling CPU and memory profiling are enabled
They link the libraries used by the tools as this is the simplest way
and follows established style
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue May 27, 2022
Adds markdown file in docs/howto explaining how to install, enable, turn
on and use gperftools and related software.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue May 27, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 6, 2022
The location for a gperf install can be sepcified at buiild time to
allow for greater flexibility and lowest privilleges when installing the
tool
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 6, 2022
Separate build options for enabling CPU and memory profiling are enabled
They link the libraries used by the tools as this is the simplest way
and follows established style
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 6, 2022
Adds markdown file in docs/howto explaining how to install, enable, turn
on and use gperftools and related software.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 6, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 6, 2022
The location for a gperf install can be sepcified at buiild time to
allow for greater flexibility and lowest privilleges when installing the
tool
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Separate build options for enabling CPU and memory profiling are enabled
They link the libraries used by the tools as this is the simplest way
and follows established style
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Adds markdown file in docs/howto explaining how to install, enable, turn
on and use gperftools and related software.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
The location for a gperf install can be sepcified at buiild time to
allow for greater flexibility and lowest privilleges when installing the
tool
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Separate build options for enabling CPU and memory profiling are enabled
They link the libraries used by the tools as this is the simplest way
and follows established style
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Adds markdown file in docs/howto explaining how to install, enable, turn
on and use gperftools and related software.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
The location for a gperf install can be sepcified at buiild time to
allow for greater flexibility and lowest privilleges when installing the
tool
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Separate build options for enabling CPU and memory profiling are enabled
They link the libraries used by the tools as this is the simplest way
and follows established style
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Adds markdown file in docs/howto explaining how to install, enable, turn
on and use gperftools and related software.
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 7, 2022
The location for a gperf install can be sepcified at buiild time to
allow for greater flexibility and lowest privilleges when installing the
tool
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 14, 2022
Scott-James-Hurley added a commit to Scott-James-Hurley/acts_profiling that referenced this issue Jun 20, 2022
@kodiakhq kodiakhq bot closed this as completed in #1274 Jun 20, 2022
kodiakhq bot pushed a commit that referenced this issue Jun 20, 2022
Closes: #1273

This PR adds two new build options: `ACTS_ENABLE_CPU_PROFILING` and `ACTS_ENABLE_MEMORY_PROFILING` that will link libraries and add compile options to enable the use of gperftools' CPU profiler and memory profiler/heap checker respectively. The libraries are linked in the `Core` package as the code here is always built and is the main point of interest for performance profiling.

This PR also adds documentation to `docs/howto` for installing, enabling and using gperftools with ACTS, including some information about basic commands that I found useful when profiling ACTS as well as relevant links.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant