Init
This commit is contained in:
275
Tools/Platform/Android/android-ndk-r27d/simpleperf/ChangeLog
Normal file
275
Tools/Platform/Android/android-ndk-r27d/simpleperf/ChangeLog
Normal file
@ -0,0 +1,275 @@
|
||||
build 11421629 (Feb 8, 2024)
|
||||
inject command:
|
||||
Support converting LBR profiles to AutoFDO format
|
||||
list command:
|
||||
Use event_table.json to config raw events supported on different cpu models, and read
|
||||
/proc/cpuinfo to know cpu models on device. As a result, we can precisely report raw
|
||||
events supported on different cpu cores.
|
||||
record/stat command:
|
||||
Support monitoring different events on different cores using --cpu
|
||||
Use thousand groups when reporting sample counts
|
||||
record command:
|
||||
Add --delay to delay recording samples
|
||||
Add --record-timestamp and --record-cycles to record timestamps and cpu-cycles with ETM data
|
||||
Add --cycle-threshold for ETM cycle count packets
|
||||
Support reading symbols from DEX files in memory
|
||||
Support starting simpleperf at early-init when boot profiling, as in android_platform_profiling.md
|
||||
stat command:
|
||||
Add --tp-filter and --kprobe to improve tracepoint event counting
|
||||
app_profiler.py:
|
||||
Add app versioncode in record file
|
||||
Add --launch to start an app with its package name
|
||||
report scripts:
|
||||
Add --cpu to filter samples based on CPUs
|
||||
Add ipc.py to capture instructions per cycle of the system
|
||||
Support profiles generated by the report-sample command
|
||||
Add sample_filter.py to split large record files
|
||||
gecko_profile_generator.py:
|
||||
Add --percpu-samples to show samples grouped by CPUs
|
||||
report_html.py:
|
||||
Support parsing kernel disassembly in scripts
|
||||
Speed up generating disassembly
|
||||
Sort functions by names in flamegraph
|
||||
|
||||
|
||||
build 10661963 (Aug 16, 2023)
|
||||
report-sample command: Remove small stack gaps to get a smoother view in Stack Chart.
|
||||
Use prebult libsimpleperf_readelf (provided by Android clang prebuilts) for reading ELF files.
|
||||
report_html.py: Speed up disassembling many functions in a binary.
|
||||
|
||||
|
||||
build 10306210 (Jun 12, 2023)
|
||||
record cmd: Add --decode-etm to decode ETM data while recording.
|
||||
It saves the space storing raw ETM data.
|
||||
Store lost/cut record info in recording file.
|
||||
Report lost samples in kernel space and user space.
|
||||
inject cmd: Accept missing aux data.
|
||||
Add build id in AutoFDO output.
|
||||
gecko_profile_generatory.py: color off-cpu frames blue and jit app cache frames green.
|
||||
|
||||
|
||||
build 9796343 (March 22, 2023)
|
||||
Fix dozens of security bugs detected by fuzzer.
|
||||
record cmd:
|
||||
Increase the default user buffer size from 64M to 256M for devices having >= 4G memory. This is
|
||||
to reduce lost samples and incomplete callchains.
|
||||
Add --user-buffer-size to adjust the user buffer size.
|
||||
record/stat cmd:
|
||||
Support using process name regex to select processes via the -p option.
|
||||
Raise file desciptors limit to better support "stat --per-thread -a".
|
||||
report:
|
||||
Support demangling rust symbols.
|
||||
Suppress read symbol warnings for not-ELF files.
|
||||
Improve deobfuscating Java symbols (ndk issue 1836).
|
||||
In report scripts, add --aggregate-threads to merge samples for selected threads.
|
||||
In binary_cache_builder.py, support searching for binaries having different names from those
|
||||
recorded in perf.data. Also fix a bug supporting native libs embedded in apk.
|
||||
In gecko_profile_generator.py, remove small stack gaps to get a smoother view in Stack Chart.
|
||||
doc:
|
||||
Update doc on the broken DWARF call graph issue.
|
||||
Add doc for trying the latest simpleperf builds and scripts.
|
||||
|
||||
|
||||
build 9042912 (Sep 8, 2022)
|
||||
Fix adhoc codesign for darwin binaries.
|
||||
Release protobuf files in proto directory.
|
||||
stat cmd: Update to work with CPU cores having different numbers of PMU counters.
|
||||
doc: Update collect_etm_data_for_autofdo.md.
|
||||
|
||||
|
||||
build 8355685 (March 25, 2022)
|
||||
1. Add doc for getting boot-time profile, add doc view_the_profile.md.
|
||||
2. Share report lib options between scripts.
|
||||
|
||||
|
||||
build 8121221 (Jan 26, 2022)
|
||||
1. On Android >= 13, allow an app profiling itself even after device reboot.
|
||||
The permission expiration time can be set by --days in api_profiler.py.
|
||||
2. Improve --trace-offcpu in record cmd to support multiple report modes: pure on cpu samples,
|
||||
pure on-cpu samples, or both on-cpu and off-cpu samples.
|
||||
3. Add --add-counter in record cmd to add additional event counts in samples.
|
||||
4. Add --filter-file in report cmds and scripts to filter samples based on timestamps.
|
||||
5. On Android >= 13, add boot-record cmd to record boot-time profiles on userdebug/eng devices.
|
||||
6. For AutoFDO/ETM support, support multiple input files in inject cmd to speed up processing and
|
||||
combine output.
|
||||
|
||||
|
||||
build 7848450
|
||||
record cmd:
|
||||
Add support for new perf ETE files.
|
||||
report cmd:
|
||||
Extend --percent-limit to report entries.
|
||||
scripts:
|
||||
Add gecko_profile_generator.py, which generates reports for firefox profiler.
|
||||
Add stackcollapse.py, which generates reports to Folded Stacks.
|
||||
Improve support of proguard mapping file.
|
||||
Improve logging.
|
||||
pprof_proto_generator.py:
|
||||
Add thread, threadpool, pid, tid labels.
|
||||
Set units of common events.
|
||||
Add comments.
|
||||
app_profiler.py: Kill app process for current user.
|
||||
report_sample.py: add --header and --comm options.
|
||||
doc:
|
||||
Add introduction slide.
|
||||
Use auto-generated tables of contents.
|
||||
test: Fix flaky tests.
|
||||
|
||||
|
||||
build 7649958
|
||||
Build arm simpleperf for armv7-neon instead of armv8.
|
||||
Support JIT method name with signature.
|
||||
Doc improvement.
|
||||
|
||||
|
||||
build 7549687
|
||||
Use multithreading to speed up line annotation.
|
||||
Add doc/debug_dwarf_unwinding.md.
|
||||
Add doc/collect_etm_data_for_autofdo.md.
|
||||
Move to file2 feature section.
|
||||
|
||||
|
||||
build 7414587
|
||||
Drop python2 support, scripts are tested on python3.8 and python3.9.
|
||||
Refactor debug unwinding:
|
||||
1. Add --keep-failed-unwinding-result and --keep-failed-unwinding-stack options
|
||||
in record cmd, to generate additional records for failed unwinding cases.
|
||||
2. Refactor debug-unwind cmd and debug_unwind_reporter.py to report failed
|
||||
unwinding cases.
|
||||
Support recording and converting kernel ETM data in record cmd and inject cmd.
|
||||
Support using proguard mapping file for reporting.
|
||||
Support vmlinux file when building binary_cache.
|
||||
Support showing disassembly of vmlinux file in report_html.py. Use multithreading
|
||||
to speedup disassembling.
|
||||
Add app_type, android_sdk_version and android_build_type in meta_info of recording file.
|
||||
|
||||
|
||||
ndk r23
|
||||
build 7173446
|
||||
Add visualization tool purgatorio.
|
||||
Switch to llvm-objdump and llvm-readelf.
|
||||
|
||||
build 7119240
|
||||
Reduce prepare recording time.
|
||||
Add --kprobe option in record cmd.
|
||||
Add --cpu option in report cmd.
|
||||
Add -i option in dump cmd.
|
||||
Add --exclude-perf option in inject cmd.
|
||||
Add merge cmd to merge recording files recorded in the same environment using
|
||||
the same event types.
|
||||
Add monitor cmd to record and report events in real time.
|
||||
Fix a few bugs about symbolization of kernel and kernel modules.
|
||||
Support parsing kernel etm data in inject cmd.
|
||||
Add --show-execution-type option in report-sample cmd.
|
||||
Don't hide art jni methods in report_lib and report-sample cmd.
|
||||
|
||||
|
||||
build 6859468
|
||||
Add --csv option in report cmd.
|
||||
Add --sort option in stat cmd.
|
||||
Add --tp-filter option to filter tracepoint events in record cmd.
|
||||
Add --addr-filter to filter etm recording in record cmd.
|
||||
Fix finding symbols from kernel modules.
|
||||
Better ART JIT support (dump jit symfiles to a single file instead of multiple
|
||||
temporary files).
|
||||
Support generic JIT symbols from symbol map file. See doc/jit_symbols.md.
|
||||
|
||||
|
||||
ndk r22
|
||||
build 6401870
|
||||
Support multiple record files in pprof_proto_generator.py.
|
||||
In stat cmd, add --per-thread and --per-core options to report per thread and per core.
|
||||
In record cmd, add --exclude-perf option to exclude simpleperf samples in system wide
|
||||
recording.
|
||||
In inject cmd, support decoding coresight etm data to branch list data in protobuf format.
|
||||
Fix and add doc for app_api, which can control simpleperf recording in app code.
|
||||
Support pmu event types:
|
||||
list supported pmu events via `simpleperf list pmu`.
|
||||
record/stat pmu events via options like -e armv8_pmuv3/cpu_cycles/.
|
||||
Switch to llvm-objdump.
|
||||
Add doc for line and disassembly annotation in README.md.
|
||||
Add doc for profiling profileable release app on Android >= Q.
|
||||
Remove dependency on libncurses.
|
||||
|
||||
ndk r21
|
||||
In record cmd, support recording coresight etm data (via -e cs-etm option).
|
||||
Add inject cmd to decode coresight etm data.
|
||||
Add doc for downloading unstripped libraries on device.
|
||||
Fix scripts for using unstripped libraries without build ids for reporting.
|
||||
Switch to llvm-symbolizer.
|
||||
Add app_api and api_profiler.py, which can control simpleperf recording in app code.
|
||||
Fix pprof_proto_generator.py to support line and disassembly annotation via pprof.
|
||||
|
||||
ndk r20
|
||||
Skipped.
|
||||
|
||||
ndk r19
|
||||
Fix report-sample command on Windows.
|
||||
|
||||
ndk r18
|
||||
Improve support of profiling JITed/interpreted Java code on Android >= P:
|
||||
1) Support JITed/interpreted Java code in system wide recording.
|
||||
2) Support dex files extracted to memory.
|
||||
3) Fix some bugs and improve inefficient code.
|
||||
Improve record command:
|
||||
1) Add a user space buffer and a high priority record reading thread to reduce sampe lost rate.
|
||||
2) Record full process name instead of only the last 16 bytes.
|
||||
Improve report_html.py:
|
||||
1) Generate flamegraphs in Javascript code instead of using inferno, thus
|
||||
reducing the time used to generate and load report.
|
||||
2) Use bootstrap 4 to format UI.
|
||||
3) Use progressbar to show progress of loading contents.
|
||||
4) Add --binary_filter option to only annotate selected binaries.
|
||||
Export tracing data in simpleperf_report_lib.py.
|
||||
Test python scripts with both python2 and python3.
|
||||
Add document for using simpleperf in Android platform profiling.
|
||||
|
||||
ndk r17
|
||||
(release)
|
||||
Use new Android unwinder, which can unwind for archs different from build.
|
||||
Support profiling interpreted and JITed java code on Android >= P.
|
||||
Refactor app_profiler.py: improve option interface, simplify profiling from launch,
|
||||
and improve native lib downloading.
|
||||
Fix ndk issues 638, 644, 499, 493.
|
||||
Add debug-unwind cmd and script to debug unwinding.
|
||||
Update document, including the way using wrap.sh to profile released apk.
|
||||
|
||||
(beta 1)
|
||||
Add report_html.py, reporting profiling result in html interface.
|
||||
Improve inferno.
|
||||
Refactor document.
|
||||
Provide more complete dwarf based call graphs.
|
||||
|
||||
ndk r16
|
||||
|
||||
Add inferno, a flamegraph generator.
|
||||
Add --trace-offcpu option in simpleperf record command and app_profiler.py to trace offcpu time.
|
||||
Add --app option in simpleperf record command to remove need of using run-as.
|
||||
Add --profile_from_launch option in app_profiler.py to start recording from Activity launch time.
|
||||
Configure scripts from command lines, remove config files.
|
||||
Wrap simpleperf report command with report.py, in which GUI mode is enabled with --gui option.
|
||||
Add release tests for scripts.
|
||||
|
||||
|
||||
ndk r15
|
||||
|
||||
Add three Android Studio project examples, show how to build optimized native libs containing
|
||||
debug info, show how to fully compile app on Android O.
|
||||
Add symbol info in perf.data by default, no need to add --dump-symbols in simpleperf record command.
|
||||
Report brief call-graph in simpleperf report command.
|
||||
Support raw cpu pmu events.
|
||||
|
||||
|
||||
ndk r14
|
||||
|
||||
Add app_profiler.py to help recording profiling data.
|
||||
Add annotate.py to annotate source code.
|
||||
Add simpleperf_report_lib.py interface to support extracting samples from perf.data.
|
||||
Release simpleperf binaries on host to support reporting on host.
|
||||
|
||||
|
||||
ndk r13
|
||||
|
||||
Release simpleperf binaries on device.
|
||||
Support recording and reporting stack frame based callgraphs and dwarf based callgraphs.
|
||||
Add simpleperf_report.py to show callgraphs in GUI.
|
||||
Reference in New Issue
Block a user