Resurrect SamplingProfilerIntegration
1.) Change from samples per second (persist.sys.profiler_hz) to
interval between samples (persist.sys.profiler_ms) to match
underlying SamplingProfiler API. This allows samples to be taken
less often than a second, which allows lower overhead for always
on profiling.
2.) Add persist.sys.profiler_depth to control the number of frames
kept. Currently defaults to 4 which is the default hprof depth,
but often 12 is necessary even in benchmarks to get a good idea
where time is being spent.
3.) Moved SNAPSHOT_DIR creation to initialization time instead of
checking it on every sample.
4.) Used ThreadFactory to provide human readable name to writeSnapshot
Executor thread.
5.) Fixed bug where writeZygoteSnapshot was calling wrong variant of
writeSnapshot causing profiling to prevent zygote startup. Renamed
underling private writeSnapshot to writeSnapshotFile to try to
prevent future confusion.
Change-Id: Ifcfc343816b19f13a6eef2cbf25cde334d8adc3b
1 file changed