|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | - | - |
| CtsSimpleperfTestCases_testdata/ | H | 25-Apr-2025 | - | | |
| app_api/ | H | 25-Apr-2025 | - | 1,274 | 871 |
| demo/ | H | 25-Apr-2025 | - | 4,871 | 3,983 |
| doc/ | H | 25-Apr-2025 | - | 33,672 | 32,521 |
| include/ | H | 25-Apr-2025 | - | 125 | 47 |
| nonlinux_support/ | H | 25-Apr-2025 | - | 146 | 62 |
| runtest/ | H | 25-Apr-2025 | - | 1,315 | 1,035 |
| rust/ | H | 25-Apr-2025 | - | 81 | 37 |
| scripts/ | H | 25-Apr-2025 | - | 89,651 | 86,308 |
| simpleperf_app_runner/ | H | 25-Apr-2025 | - | 312 | 248 |
| testdata/ | H | 25-Apr-2025 | - | 50,849 | 49,337 |
| .clang-format | H A D | 25-Apr-2025 | 239 | 12 | 11 |
| .gitignore | H A D | 25-Apr-2025 | 5 | 1 | 1 |
| Android.bp | H A D | 25-Apr-2025 | 19 KiB | 817 | 784 |
| BranchListFile.cpp | H A D | 25-Apr-2025 | 24.6 KiB | 743 | 668 |
| BranchListFile.h | H A D | 25-Apr-2025 | 8 KiB | 246 | 179 |
| BranchListFile_test.cpp | H A D | 25-Apr-2025 | 5.2 KiB | 164 | 136 |
| CallChainJoiner.cpp | H A D | 25-Apr-2025 | 13.8 KiB | 428 | 358 |
| CallChainJoiner.h | H A D | 25-Apr-2025 | 5.9 KiB | 182 | 117 |
| CallChainJoiner_test.cpp | H A D | 25-Apr-2025 | 10.1 KiB | 272 | 213 |
| ETMConstants.h | H A D | 25-Apr-2025 | 1.2 KiB | 33 | 12 |
| ETMDecoder.cpp | H A D | 25-Apr-2025 | 36.8 KiB | 1,020 | 819 |
| ETMDecoder.h | H A D | 25-Apr-2025 | 3.3 KiB | 98 | 51 |
| ETMRecorder.cpp | H A D | 25-Apr-2025 | 9 KiB | 308 | 251 |
| ETMRecorder.h | H A D | 25-Apr-2025 | 2.7 KiB | 95 | 53 |
| IOEventLoop.cpp | H A D | 25-Apr-2025 | 6.9 KiB | 232 | 182 |
| IOEventLoop.h | H A D | 25-Apr-2025 | 3.7 KiB | 109 | 50 |
| IOEventLoop_test.cpp | H A D | 25-Apr-2025 | 8.1 KiB | 326 | 271 |
| JITDebugReader.cpp | H A D | 25-Apr-2025 | 29 KiB | 789 | 655 |
| JITDebugReader.h | H A D | 25-Apr-2025 | 9.5 KiB | 256 | 166 |
| JITDebugReader_impl.h | H A D | 25-Apr-2025 | 2.4 KiB | 93 | 63 |
| JITDebugReader_test.cpp | H A D | 25-Apr-2025 | 3.9 KiB | 101 | 64 |
| MapRecordReader.cpp | H A D | 25-Apr-2025 | 7.1 KiB | 239 | 197 |
| MapRecordReader.h | H A D | 25-Apr-2025 | 2.5 KiB | 80 | 46 |
| MapRecordReader_test.cpp | H A D | 25-Apr-2025 | 2.8 KiB | 98 | 67 |
| NOTICE | H A D | 25-Apr-2025 | 10.4 KiB | 191 | 158 |
| OWNERS | H A D | 25-Apr-2025 | 89 | 4 | 3 |
| OfflineUnwinder.cpp | H A D | 25-Apr-2025 | 15.8 KiB | 369 | 302 |
| OfflineUnwinder.h | H A D | 25-Apr-2025 | 3.1 KiB | 89 | 53 |
| OfflineUnwinder_impl.h | H A D | 25-Apr-2025 | 1.6 KiB | 55 | 28 |
| OfflineUnwinder_test.cpp | H A D | 25-Apr-2025 | 3.8 KiB | 121 | 81 |
| ProbeEvents.cpp | H A D | 25-Apr-2025 | 5.3 KiB | 174 | 130 |
| ProbeEvents.h | H A D | 25-Apr-2025 | 1.8 KiB | 59 | 28 |
| ProbeEvents_test.cpp | H A D | 25-Apr-2025 | 1.8 KiB | 53 | 26 |
| README.md | H A D | 25-Apr-2025 | 3.1 KiB | 99 | 70 |
| RecordFilter.cpp | H A D | 25-Apr-2025 | 16 KiB | 529 | 446 |
| RecordFilter.h | H A D | 25-Apr-2025 | 7.1 KiB | 142 | 101 |
| RecordFilter_test.cpp | H A D | 25-Apr-2025 | 11.1 KiB | 361 | 270 |
| RecordReadThread.cpp | H A D | 25-Apr-2025 | 24.3 KiB | 686 | 590 |
| RecordReadThread.h | H A D | 25-Apr-2025 | 7.7 KiB | 222 | 139 |
| RecordReadThread_test.cpp | H A D | 25-Apr-2025 | 22.1 KiB | 586 | 496 |
| RegEx.cpp | H A D | 25-Apr-2025 | 2.6 KiB | 90 | 58 |
| RegEx.h | H A D | 25-Apr-2025 | 1.8 KiB | 58 | 30 |
| RegEx_test.cpp | H A D | 25-Apr-2025 | 1.4 KiB | 50 | 25 |
| SampleComparator.h | H A D | 25-Apr-2025 | 4.2 KiB | 129 | 86 |
| SampleDisplayer.h | H A D | 25-Apr-2025 | 10 KiB | 303 | 245 |
| TEST_MAPPING | H A D | 25-Apr-2025 | 75 | 7 | 7 |
| ZstdUtil.cpp | H A D | 25-Apr-2025 | 6.6 KiB | 214 | 168 |
| ZstdUtil.h | H A D | 25-Apr-2025 | 1.8 KiB | 58 | 30 |
| ZstdUtil_test.cpp | H A D | 25-Apr-2025 | 3.3 KiB | 87 | 56 |
| branch_list.proto | H A D | 25-Apr-2025 | 2.9 KiB | 107 | 90 |
| build_id.h | H A D | 25-Apr-2025 | 3 KiB | 108 | 66 |
| callchain.h | H A D | 25-Apr-2025 | 5.1 KiB | 158 | 123 |
| cmd_api.cpp | H A D | 25-Apr-2025 | 9.5 KiB | 299 | 246 |
| cmd_api_impl.h | H A D | 25-Apr-2025 | 1.3 KiB | 35 | 14 |
| cmd_api_test.cpp | H A D | 25-Apr-2025 | 3 KiB | 110 | 70 |
| cmd_boot_record.cpp | H A D | 25-Apr-2025 | 6 KiB | 193 | 152 |
| cmd_boot_record_test.cpp | H A D | 25-Apr-2025 | 1.5 KiB | 43 | 18 |
| cmd_debug_unwind.cpp | H A D | 25-Apr-2025 | 27.2 KiB | 738 | 641 |
| cmd_debug_unwind_test.cpp | H A D | 25-Apr-2025 | 7.7 KiB | 193 | 137 |
| cmd_dumprecord.cpp | H A D | 25-Apr-2025 | 21.3 KiB | 628 | 554 |
| cmd_dumprecord_test.cpp | H A D | 25-Apr-2025 | 3.3 KiB | 98 | 57 |
| cmd_help.cpp | H A D | 25-Apr-2025 | 2.9 KiB | 97 | 64 |
| cmd_inject.cpp | H A D | 25-Apr-2025 | 47.9 KiB | 1,347 | 1,162 |
| cmd_inject_test.cpp | H A D | 25-Apr-2025 | 14.2 KiB | 373 | 265 |
| cmd_kmem.cpp | H A D | 25-Apr-2025 | 25.9 KiB | 699 | 615 |
| cmd_kmem_test.cpp | H A D | 25-Apr-2025 | 4.7 KiB | 152 | 110 |
| cmd_list.cpp | H A D | 25-Apr-2025 | 14.5 KiB | 461 | 385 |
| cmd_list_test.cpp | H A D | 25-Apr-2025 | 1.5 KiB | 59 | 27 |
| cmd_merge.cpp | H A D | 25-Apr-2025 | 14.6 KiB | 430 | 364 |
| cmd_merge_test.cpp | H A D | 25-Apr-2025 | 3.2 KiB | 95 | 58 |
| cmd_monitor.cpp | H A D | 25-Apr-2025 | 21.9 KiB | 615 | 502 |
| cmd_monitor_test.cpp | H A D | 25-Apr-2025 | 4.1 KiB | 150 | 102 |
| cmd_record.cpp | H A D | 25-Apr-2025 | 91 KiB | 2,397 | 2,052 |
| cmd_record_impl.h | H A D | 25-Apr-2025 | 6.8 KiB | 113 | 89 |
| cmd_record_test.cpp | H A D | 25-Apr-2025 | 52.9 KiB | 1,500 | 1,185 |
| cmd_report.cpp | H A D | 25-Apr-2025 | 41 KiB | 1,067 | 934 |
| cmd_report_sample.cpp | H A D | 25-Apr-2025 | 38.7 KiB | 1,014 | 900 |
| cmd_report_sample.proto | H A D | 25-Apr-2025 | 6.1 KiB | 165 | 141 |
| cmd_report_sample_test.cpp | H A D | 25-Apr-2025 | 13.6 KiB | 326 | 234 |
| cmd_report_test.cpp | H A D | 25-Apr-2025 | 25.7 KiB | 749 | 597 |
| cmd_stat.cpp | H A D | 25-Apr-2025 | 36.9 KiB | 1,011 | 885 |
| cmd_stat_impl.h | H A D | 25-Apr-2025 | 12.4 KiB | 340 | 273 |
| cmd_stat_test.cpp | H A D | 25-Apr-2025 | 24.7 KiB | 720 | 566 |
| cmd_trace_sched.cpp | H A D | 25-Apr-2025 | 14.9 KiB | 426 | 373 |
| cmd_trace_sched_test.cpp | H A D | 25-Apr-2025 | 2.1 KiB | 66 | 39 |
| command.cpp | H A D | 25-Apr-2025 | 9.9 KiB | 302 | 254 |
| command.h | H A D | 25-Apr-2025 | 7.9 KiB | 242 | 187 |
| command_test.cpp | H A D | 25-Apr-2025 | 9 KiB | 215 | 163 |
| cpu_hotplug_test.cpp | H A D | 25-Apr-2025 | 15.7 KiB | 504 | 422 |
| dso.cpp | H A D | 25-Apr-2025 | 36 KiB | 1,122 | 934 |
| dso.h | H A D | 25-Apr-2025 | 8.4 KiB | 243 | 164 |
| dso_test.cpp | H A D | 25-Apr-2025 | 16.8 KiB | 426 | 321 |
| environment.cpp | H A D | 25-Apr-2025 | 37.2 KiB | 1,185 | 996 |
| environment.h | H A D | 25-Apr-2025 | 5.1 KiB | 184 | 129 |
| environment_test.cpp | H A D | 25-Apr-2025 | 5.2 KiB | 164 | 117 |
| event_attr.cpp | H A D | 25-Apr-2025 | 10.7 KiB | 272 | 209 |
| event_attr.h | H A D | 25-Apr-2025 | 2.1 KiB | 64 | 32 |
| event_fd.cpp | H A D | 25-Apr-2025 | 11.3 KiB | 334 | 268 |
| event_fd.h | H A D | 25-Apr-2025 | 5.5 KiB | 161 | 86 |
| event_selection_set.cpp | H A D | 25-Apr-2025 | 32.8 KiB | 1,016 | 868 |
| event_selection_set.h | H A D | 25-Apr-2025 | 8.7 KiB | 255 | 169 |
| event_selection_set_test.cpp | H A D | 25-Apr-2025 | 4.1 KiB | 98 | 71 |
| event_table.json | H A D | 25-Apr-2025 | 98 KiB | 1,057 | 1,056 |
| event_table_generator.py | H A D | 25-Apr-2025 | 12.2 KiB | 337 | 260 |
| event_type.cpp | H A D | 25-Apr-2025 | 17.4 KiB | 593 | 497 |
| event_type.h | H A D | 25-Apr-2025 | 4.2 KiB | 138 | 90 |
| get_test_data.h | H A D | 25-Apr-2025 | 6.9 KiB | 148 | 54 |
| gtest_main.cpp | H A D | 25-Apr-2025 | 3.7 KiB | 141 | 95 |
| kallsyms.cpp | H A D | 25-Apr-2025 | 8.4 KiB | 289 | 222 |
| kallsyms.h | H A D | 25-Apr-2025 | 1.8 KiB | 60 | 21 |
| kallsyms_test.cpp | H A D | 25-Apr-2025 | 4.5 KiB | 146 | 105 |
| libsimpleperf_report_fuzzer.cpp | H A D | 25-Apr-2025 | 2.9 KiB | 88 | 61 |
| main.cpp | H A D | 25-Apr-2025 | 3.2 KiB | 82 | 45 |
| perf_event.h | H A D | 25-Apr-2025 | 950 | 31 | 11 |
| perf_regs.cpp | H A D | 25-Apr-2025 | 8 KiB | 281 | 240 |
| perf_regs.h | H A D | 25-Apr-2025 | 2.9 KiB | 113 | 80 |
| perf_regs_test.cpp | H A D | 25-Apr-2025 | 1.2 KiB | 40 | 19 |
| profcollect.cpp | H A D | 25-Apr-2025 | 4.3 KiB | 141 | 104 |
| read_apk.cpp | H A D | 25-Apr-2025 | 6 KiB | 172 | 129 |
| read_apk.h | H A D | 25-Apr-2025 | 3.4 KiB | 95 | 50 |
| read_apk_test.cpp | H A D | 25-Apr-2025 | 3.5 KiB | 86 | 57 |
| read_dex_file.cpp | H A D | 25-Apr-2025 | 3.4 KiB | 94 | 68 |
| read_dex_file.h | H A D | 25-Apr-2025 | 1.5 KiB | 48 | 23 |
| read_dex_file_test.cpp | H A D | 25-Apr-2025 | 1.5 KiB | 45 | 22 |
| read_elf.cpp | H A D | 25-Apr-2025 | 20.8 KiB | 617 | 525 |
| read_elf.h | H A D | 25-Apr-2025 | 3.6 KiB | 118 | 75 |
| read_elf_test.cpp | H A D | 25-Apr-2025 | 9.1 KiB | 276 | 206 |
| read_symbol_map.cpp | H A D | 25-Apr-2025 | 2.7 KiB | 110 | 70 |
| read_symbol_map.h | H A D | 25-Apr-2025 | 1.1 KiB | 39 | 15 |
| read_symbol_map_test.cpp | H A D | 25-Apr-2025 | 4 KiB | 121 | 74 |
| record.cpp | H A D | 25-Apr-2025 | 58.8 KiB | 1,749 | 1,607 |
| record.h | H A D | 25-Apr-2025 | 20.4 KiB | 720 | 524 |
| record_equal_test.h | H A D | 25-Apr-2025 | 4.7 KiB | 121 | 97 |
| record_file.h | H A D | 25-Apr-2025 | 10.9 KiB | 300 | 201 |
| record_file.proto | H A D | 25-Apr-2025 | 1.4 KiB | 61 | 50 |
| record_file_format.h | H A D | 25-Apr-2025 | 3.7 KiB | 159 | 61 |
| record_file_reader.cpp | H A D | 25-Apr-2025 | 30.7 KiB | 976 | 885 |
| record_file_test.cpp | H A D | 25-Apr-2025 | 12.5 KiB | 345 | 251 |
| record_file_writer.cpp | H A D | 25-Apr-2025 | 21.4 KiB | 696 | 596 |
| record_lib_interface.cpp | H A D | 25-Apr-2025 | 7.7 KiB | 298 | 242 |
| record_lib_test.cpp | H A D | 25-Apr-2025 | 5.4 KiB | 149 | 118 |
| record_test.cpp | H A D | 25-Apr-2025 | 9.2 KiB | 232 | 179 |
| report_lib_interface.cpp | H A D | 25-Apr-2025 | 26 KiB | 796 | 670 |
| report_utils.cpp | H A D | 25-Apr-2025 | 18.7 KiB | 532 | 432 |
| report_utils.h | H A D | 25-Apr-2025 | 4.7 KiB | 160 | 102 |
| report_utils_test.cpp | H A D | 25-Apr-2025 | 28.2 KiB | 633 | 520 |
| sample_tree.h | H A D | 25-Apr-2025 | 12 KiB | 351 | 267 |
| sample_tree_test.cpp | H A D | 25-Apr-2025 | 8.5 KiB | 243 | 190 |
| simpleperf.rc | H A D | 25-Apr-2025 | 480 | 10 | 7 |
| simpleperf_dict.dict | H A D | 25-Apr-2025 | 14 | 1 | 1 |
| simpleperf_writer_fuzzer.cpp | H A D | 25-Apr-2025 | 6.5 KiB | 178 | 148 |
| test_util.cpp | H A D | 25-Apr-2025 | 6.1 KiB | 188 | 146 |
| test_util.h | H A D | 25-Apr-2025 | 7.6 KiB | 206 | 162 |
| thread_tree.cpp | H A D | 25-Apr-2025 | 14.1 KiB | 441 | 364 |
| thread_tree.h | H A D | 25-Apr-2025 | 6.2 KiB | 178 | 119 |
| thread_tree_test.cpp | H A D | 25-Apr-2025 | 4.7 KiB | 160 | 106 |
| tracing.cpp | H A D | 25-Apr-2025 | 19.2 KiB | 650 | 551 |
| tracing.h | H A D | 25-Apr-2025 | 3.6 KiB | 130 | 88 |
| tracing_test.cpp | H A D | 25-Apr-2025 | 4.4 KiB | 107 | 75 |
| utils.cpp | H A D | 25-Apr-2025 | 14.1 KiB | 526 | 454 |
| utils.h | H A D | 25-Apr-2025 | 8.1 KiB | 299 | 223 |
| utils_test.cpp | H A D | 25-Apr-2025 | 4 KiB | 122 | 85 |
| workload.cpp | H A D | 25-Apr-2025 | 6.8 KiB | 230 | 188 |
| workload.h | H A D | 25-Apr-2025 | 2.4 KiB | 80 | 46 |
| workload_test.cpp | H A D | 25-Apr-2025 | 2.5 KiB | 83 | 51 |
README.md
1# Simpleperf
2
3Android Studio includes a graphical front end to Simpleperf, documented in
4[Inspect CPU activity with CPU Profiler](https://developer.android.com/studio/profile/cpu-profiler).
5Most users will prefer to use that instead of using Simpleperf directly.
6
7If you prefer to use the command line, Simpleperf is a versatile command-line
8CPU profiling tool included in the NDK for Mac, Linux, and Windows.
9
10This file contains documentation for simpleperf maintainers.
11
12There is also [user documentation](doc/README.md).
13
14## Building new prebuilts
15
16To snap the aosp-simpleperf-release branch to ToT AOSP main and kick off a
17build, use [this coastguard
18page](https://android-build.googleplex.com/coastguard/dashboard/5938649007521792/#/request/create)
19and choose "aosp-simpleperf-release" from the "Branch" dropdown. Then click
20"Submit build requests". You'll get emails keeping you up to date with the
21progress of the snap and the build.
22
23## Updating the prebuilts
24
25Once you have the build id (a 7-digit number) and the build is complete, run the
26update script from within the `system/extras/simpleperf` directory:
27```
28$ ./scripts/update.py --build 1234567
29```
30
31This will create a new change that you can `repo upload`, then approve and
32submit as normal.
33
34For testing, I usually only run python host tests as below:
35```
36$ ./scripts/test/test.py --only-host-test
37```
38
39To test all scripts, please use python 3.8+ and install below packages:
40```
41$ pip install bokeh jinja2 pandas protobuf textable
42```
43
44## Updating the prebuilts in prebuilts/simpleperf
45
46Download ndk branch.
47```
48$ repo init -u persistent-https://android.git.corp.google.com/platform/manifest -b master-ndk
49$ repo sync
50```
51
52In prebuilts/simpleperf, run `update.py`:
53```
54$ ./update.py --build <bid>
55```
56
57Then manually edit `ChangeLog`.
58This will create a new change that you can `repo upload`, then approve and submit as normal.
59
60For testing, we need to test if the scripts run on darwin/linux/windows for different android
61versions. I usually split it to four parts:
62
631. Test on android emulators running on linux x86_64 host, for android version N/O/P/Q/R/S/current.
64
65```
66$ ./test/test.py -d <devices> -r 3
67```
68
69The scripts support android >= N. But it's easier to test old versions on emulators. So I only test
70android N on emulators.
71
72Currently, the tests have problems in clean up. So tests on emulator may fail and take too long to
73run. And there are a few known failed cases. Hopefully they will be fixed soon.
74
751. Test on android devices connected to linux x86_64 host, for android version O/P/Q/R/S/current.
76
77```
78$ ./test/test.py -d <devices> -r 3
79```
80
813. Test on an android device connected to darwin x86_64 host, for one of android version O/P/Q/R/S/current.
82
83```
84$ ./test/test.py -d <devices> -r 1
85```
86
874. Test on an android device connected to darwin x86_64 host, for one of android version O/P/Q/R/S/current.
88
89```
90$ ./test/test.py -d <devices> -r 1
91```
92
93To check simpleperf contents released in ndk, we can build ndk package.
94```
95$ <top_dir>/ndk/checkbuild.py --package --system linux --module simpleperf
96```
97
98The ndk package is generated in `out/` directory.
99