Dan Albert | e7e2c31 | 2021-03-10 16:43:22 -0800 | [diff] [blame] | 1 | |
Aurimas Liutikas | 9b41cef | 2021-11-16 15:55:24 -0800 | [diff] [blame] | 2 | build 7414587 |
| 3 | Drop python2 support, scripts are tested on python3.8 and python3.9. |
| 4 | Refactor debug unwinding: |
| 5 | 1. Add --keep-failed-unwinding-result and --keep-failed-unwinding-stack options |
| 6 | in record cmd, to generate additional records for failed unwinding cases. |
| 7 | 2. Refactor debug-unwind cmd and debug_unwind_reporter.py to report failed |
| 8 | unwinding cases. |
| 9 | Support recording and converting kernel ETM data in record cmd and inject cmd. |
| 10 | Support using proguard mapping file for reporting. |
| 11 | Support vmlinux file when building binary_cache. |
| 12 | Support showing disassembly of vmlinux file in report_html.py. Use multithreading |
| 13 | to speedup disassembling. |
| 14 | Add app_type, android_sdk_version and android_build_type in meta_info of recording file. |
| 15 | |
| 16 | |
| 17 | ndk r23 |
Dan Albert | b8a0c00 | 2021-03-18 14:43:06 -0700 | [diff] [blame] | 18 | build 7173446 |
| 19 | Add visualization tool purgatorio. |
| 20 | Switch to llvm-objdump and llvm-readelf. |
| 21 | |
| 22 | build 7119240 |
| 23 | Reduce prepare recording time. |
| 24 | Add --kprobe option in record cmd. |
| 25 | Add --cpu option in report cmd. |
| 26 | Add -i option in dump cmd. |
| 27 | Add --exclude-perf option in inject cmd. |
| 28 | Add merge cmd to merge recording files recorded in the same environment using |
| 29 | the same event types. |
| 30 | Add monitor cmd to record and report events in real time. |
| 31 | Fix a few bugs about symbolization of kernel and kernel modules. |
| 32 | Support parsing kernel etm data in inject cmd. |
| 33 | Add --show-execution-type option in report-sample cmd. |
| 34 | Don't hide art jni methods in report_lib and report-sample cmd. |
| 35 | |
| 36 | |
Dan Albert | e7e2c31 | 2021-03-10 16:43:22 -0800 | [diff] [blame] | 37 | build 6859468 |
| 38 | Add --csv option in report cmd. |
| 39 | Add --sort option in stat cmd. |
| 40 | Add --tp-filter option to filter tracepoint events in record cmd. |
| 41 | Add --addr-filter to filter etm recording in record cmd. |
| 42 | Fix finding symbols from kernel modules. |
| 43 | Better ART JIT support (dump jit symfiles to a single file instead of multiple |
| 44 | temporary files). |
| 45 | Support generic JIT symbols from symbol map file. See doc/jit_symbols.md. |
| 46 | |
| 47 | |
| 48 | ndk r22 |
| 49 | build 6401870 |
| 50 | Support multiple record files in pprof_proto_generator.py. |
| 51 | In stat cmd, add --per-thread and --per-core options to report per thread and per core. |
| 52 | In record cmd, add --exclude-perf option to exclude simpleperf samples in system wide |
| 53 | recording. |
| 54 | In inject cmd, support decoding coresight etm data to branch list data in protobuf format. |
| 55 | Fix and add doc for app_api, which can control simpleperf recording in app code. |
| 56 | Support pmu event types: |
| 57 | list supported pmu events via `simpleperf list pmu`. |
| 58 | record/stat pmu events via options like -e armv8_pmuv3/cpu_cycles/. |
| 59 | Switch to llvm-objdump. |
| 60 | Add doc for line and disassembly annotation in README.md. |
| 61 | Add doc for profiling profileable release app on Android >= Q. |
| 62 | Remove dependency on libncurses. |
| 63 | |
| 64 | ndk r21 |
| 65 | In record cmd, support recording coresight etm data (via -e cs-etm option). |
| 66 | Add inject cmd to decode coresight etm data. |
| 67 | Add doc for downloading unstripped libraries on device. |
| 68 | Fix scripts for using unstripped libraries without build ids for reporting. |
| 69 | Switch to llvm-symbolizer. |
| 70 | Add app_api and api_profiler.py, which can control simpleperf recording in app code. |
| 71 | Fix pprof_proto_generator.py to support line and disassembly annotation via pprof. |
| 72 | |
| 73 | ndk r20 |
| 74 | Skipped. |
| 75 | |
| 76 | ndk r19 |
| 77 | Fix report-sample command on Windows. |
| 78 | |
| 79 | ndk r18 |
| 80 | Improve support of profiling JITed/interpreted Java code on Android >= P: |
| 81 | 1) Support JITed/interpreted Java code in system wide recording. |
| 82 | 2) Support dex files extracted to memory. |
| 83 | 3) Fix some bugs and improve inefficient code. |
| 84 | Improve record command: |
| 85 | 1) Add a user space buffer and a high priority record reading thread to reduce sampe lost rate. |
| 86 | 2) Record full process name instead of only the last 16 bytes. |
| 87 | Improve report_html.py: |
| 88 | 1) Generate flamegraphs in Javascript code instead of using inferno, thus |
| 89 | reducing the time used to generate and load report. |
| 90 | 2) Use bootstrap 4 to format UI. |
| 91 | 3) Use progressbar to show progress of loading contents. |
| 92 | 4) Add --binary_filter option to only annotate selected binaries. |
| 93 | Export tracing data in simpleperf_report_lib.py. |
| 94 | Test python scripts with both python2 and python3. |
| 95 | Add document for using simpleperf in Android platform profiling. |
| 96 | |
| 97 | ndk r17 |
| 98 | (release) |
| 99 | Use new Android unwinder, which can unwind for archs different from build. |
| 100 | Support profiling interpreted and JITed java code on Android >= P. |
| 101 | Refactor app_profiler.py: improve option interface, simplify profiling from launch, |
| 102 | and improve native lib downloading. |
| 103 | Fix ndk issues 638, 644, 499, 493. |
| 104 | Add debug-unwind cmd and script to debug unwinding. |
| 105 | Update document, including the way using wrap.sh to profile released apk. |
| 106 | |
| 107 | (beta 1) |
| 108 | Add report_html.py, reporting profiling result in html interface. |
| 109 | Improve inferno. |
| 110 | Refactor document. |
| 111 | Provide more complete dwarf based call graphs. |
| 112 | |
| 113 | ndk r16 |
| 114 | |
| 115 | Add inferno, a flamegraph generator. |
| 116 | Add --trace-offcpu option in simpleperf record command and app_profiler.py to trace offcpu time. |
| 117 | Add --app option in simpleperf record command to remove need of using run-as. |
| 118 | Add --profile_from_launch option in app_profiler.py to start recording from Activity launch time. |
| 119 | Configure scripts from command lines, remove config files. |
| 120 | Wrap simpleperf report command with report.py, in which GUI mode is enabled with --gui option. |
| 121 | Add release tests for scripts. |
| 122 | |
| 123 | |
| 124 | ndk r15 |
| 125 | |
| 126 | Add three Android Studio project examples, show how to build optimized native libs containing |
| 127 | debug info, show how to fully compile app on Android O. |
| 128 | Add symbol info in perf.data by default, no need to add --dump-symbols in simpleperf record command. |
| 129 | Report brief call-graph in simpleperf report command. |
| 130 | Support raw cpu pmu events. |
| 131 | |
| 132 | |
| 133 | ndk r14 |
| 134 | |
| 135 | Add app_profiler.py to help recording profiling data. |
| 136 | Add annotate.py to annotate source code. |
| 137 | Add simpleperf_report_lib.py interface to support extracting samples from perf.data. |
| 138 | Release simpleperf binaries on host to support reporting on host. |
| 139 | |
| 140 | |
| 141 | ndk r13 |
| 142 | |
| 143 | Release simpleperf binaries on device. |
| 144 | Support recording and reporting stack frame based callgraphs and dwarf based callgraphs. |
| 145 | Add simpleperf_report.py to show callgraphs in GUI. |