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
Loading
Please register or sign in to comment