MemoryProfiler: Difference between revisions

Jump to navigation Jump to search
A memory profiler that focuses on execution flows.
(Created page with "This page describes the idea of the memory profiler that focuses on the memory footprints of execution flows. == Objectives == Traditional memory analysis tools look at the d...")
 
(A memory profiler that focuses on execution flows.)
Line 1: Line 1:
This page describes the idea of the memory profiler that focuses on the memory footprints of execution flows.
This page describes the idea of a profiler that focuses on the memory footprints of execution flows.


== Objectives ==
== Objectives ==
Line 35: Line 35:
These sampled events can be used to approximate the full history of allocations afterwards. That means we can get various memory profiles of a program in different perspectives by post-processing the history in different ways.
These sampled events can be used to approximate the full history of allocations afterwards. That means we can get various memory profiles of a program in different perspectives by post-processing the history in different ways.


The profiler is designed at the very beginning to support not only JavaScript but also native codes. Naturally, not only JavaScript objects but also native allocations are tracked.
== Applications ==
== Applications ==
Besides the two examples showing the functions retaining most and having highest peak, it can be used to find out functions, code snippets or call paths allocating most.
Besides the two examples showing the functions retaining most and having highest peak, it can be used to find out functions, code snippets or call paths allocating most.
Line 42: Line 43:
With the help of the timestamp, a size-time map can be plotted, too.
With the help of the timestamp, a size-time map can be plotted, too.


== Ongoing Works ==
== Ongoing Tasks ==
The profiler is composed of two parts: the sampling engine and the front-end. Currently most of the efforts are devoted to the back-end and only a few JavaScript examples (quite useful but less convenient than you would expect) is available to give access to the profiler.
The profiler is composed of two parts: the sampling engine and the front-end. Currently most of the efforts are devoted to the back-end and only a few JavaScript examples (quite useful but less convenient than you would expect) is available to give access to the profiler.
Currently Gary is working on a GUI front-end that will have a ranking-list view, a call-tree view and a memory size timeline.
Confirmed users
32

edits

Navigation menu