v8/src/profiler
Peter Marshall 0bfcbdd472 [cpu-profiler] Only store deopt inline frames for functions that need it
We store deopt inline frames for all functions when we receive the code
creation event. We only ever use this information for code which is
deoptimized. Given that we receive code deopt events, we can just store
this information when the code is deoptimized.

At the time of the code deopt event, we also know the associated
deopt_id. That means we don't need to store a map of deopt_ids to
vectors of frames, because we will only ever access the frames for the
deopt_id that is already set.

This means we store way less data, particularly for long-running
processes which see fewer deopts. This saves 10MiB peak memory on the
node server example.

Bug: v8:7719
Change-Id: If6cf5ec413848e4c9f3c1e2106366ae2adae6fb1
Reviewed-on: https://chromium-review.googlesource.com/1050289
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53330}
2018-05-24 11:55:27 +00:00
..
allocation-tracker.cc [cleanup] Remove GetFunctionName from StringsStorage 2018-05-24 11:47:39 +00:00
allocation-tracker.h [presubmit] Add include guard check 2018-02-02 16:59:32 +00:00
circular-queue-inl.h Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
circular-queue.h Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
cpu-profiler-inl.h [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
cpu-profiler.cc [cpu-profiler] Add a new profiling mode with a more detailed call tree. 2018-05-23 09:23:40 +00:00
cpu-profiler.h [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
heap-profiler.cc [profiler] Refactoring: decouple StringsStorage from Heap object. 2018-05-04 22:34:04 +00:00
heap-profiler.h Reland "[debug] introduced runtime side effect check" 2018-04-05 03:36:10 +00:00
heap-snapshot-generator-inl.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
heap-snapshot-generator.cc [objects.h splitting] Move TYPE_CHECKERs back to objects-inl.h. 2018-05-24 11:44:07 +00:00
heap-snapshot-generator.h [cleanup] Change native_groups_ to use unordered map. 2018-05-07 15:44:58 +00:00
OWNERS Add COMPONENT tags to OWNERS files where appropriate 2017-05-22 10:15:28 +00:00
profile-generator-inl.h [cpu-profiler] Add a new profiling mode with a more detailed call tree. 2018-05-23 09:23:40 +00:00
profile-generator.cc [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
profile-generator.h [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
profiler-listener.cc [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
profiler-listener.h [cpu-profiler] Only store deopt inline frames for functions that need it 2018-05-24 11:55:27 +00:00
sampling-heap-profiler.cc [cleanup] Remove GetFunctionName from StringsStorage 2018-05-24 11:47:39 +00:00
sampling-heap-profiler.h [heap-profiler] Make ownership for samples explicit 2018-02-12 19:48:52 +00:00
strings-storage.cc [cleanup] Remove GetFunctionName from StringsStorage 2018-05-24 11:47:39 +00:00
strings-storage.h [cleanup] Remove GetFunctionName from StringsStorage 2018-05-24 11:47:39 +00:00
tick-sample.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
tick-sample.h
tracing-cpu-profiler.cc [cpu-profiler] Automatically create TracingCpuProfiler 2018-04-11 21:31:07 +00:00
tracing-cpu-profiler.h [presubmit] Add include guard check 2018-02-02 16:59:32 +00:00
unbound-queue-inl.h Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
unbound-queue.h [presubmit] Add include guard check 2018-02-02 16:59:32 +00:00