The async-profiler uses a technique called Dynamic Code Instrumentation (DCI) to trace the stack when using jit-optimized methods.
When a jit-optimized method is called, the async-profiler injects a small piece of code, called a probe, at the beginning and end of the method. This probe enables the profiler to record the start and stop times of the method call, and collect information about the call stack.
The probe code is executed with minimal overhead, so it does not affect the performance of the application being profiled. Once the profiling session is complete, the profiler gathers the collected data and generates a report that shows the amount of time spent in each method, and the call hierarchy.
Overall, the async-profiler's use of Dynamic Code Instrumentation allows it to effectively profile applications that use jit-optimized methods, providing developers with valuable insights into the performance of their code.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2022-10-10 11:00:00 +0000
Seen: 15 times
Last updated: Mar 05 '23
What is the method to determine the most precise categorization of data using Self Organizing Map?
When printing from WKWebView in Swift, the background is not taken into account.
How can a routine be made more efficient to increase its speed?
What is the process for initializing Java UDFs in Spark?
What does the error message "Error detected while processing $/.config/nvim/init.lua" mean?
What are the components that explain the state of ECMAScript execution context specification?
Does GraphDB automatically eliminate duplicate triples?
It appears that Vitest is not effectively mimicking or simulating behavior.