• Home
Name Date Size #Lines LOC

..--

CtsSimpleperfTestCases_testdata/05-Jul-2025-

app_api/04-Jul-2025-1,211814

demo/04-Jul-2025-5,1844,096

doc/05-Jul-2025-34,10932,861

include/04-Jul-2025-12547

nonlinux_support/04-Jul-2025-14662

runtest/04-Jul-2025-1,3841,078

rust/04-Jul-2025-8137

scripts/04-Jul-2025-91,47187,662

simpleperf_app_runner/04-Jul-2025-312248

testdata/05-Jul-2025-50,84949,337

.clang-formatD04-Jul-2025239

.gitignoreD04-Jul-20255 11

Android.bpD04-Jul-202518.5 KiB806773

BranchListFile.cppD04-Jul-202524.6 KiB743668

BranchListFile.hD04-Jul-20258 KiB246179

BranchListFile_test.cppD04-Jul-20255.2 KiB164136

CallChainJoiner.cppD04-Jul-202513.8 KiB428358

CallChainJoiner.hD04-Jul-20255.9 KiB182117

CallChainJoiner_test.cppD04-Jul-202510.1 KiB272213

ETMConstants.hD04-Jul-20251.2 KiB3312

ETMDecoder.cppD04-Jul-202538 KiB1,054846

ETMDecoder.hD04-Jul-20253.5 KiB10354

ETMRecorder.cppD04-Jul-20259 KiB308251

ETMRecorder.hD04-Jul-20252.7 KiB9553

IOEventLoop.cppD04-Jul-20256.9 KiB232182

IOEventLoop.hD04-Jul-20253.7 KiB10950

IOEventLoop_test.cppD04-Jul-20258.1 KiB326271

JITDebugReader.cppD04-Jul-202529 KiB789655

JITDebugReader.hD04-Jul-20259.5 KiB256166

JITDebugReader_impl.hD04-Jul-20252.4 KiB9363

JITDebugReader_test.cppD04-Jul-20253.9 KiB10164

MapRecordReader.cppD04-Jul-20257.1 KiB239197

MapRecordReader.hD04-Jul-20252.5 KiB8046

MapRecordReader_test.cppD04-Jul-20252.8 KiB9867

NOTICED04-Jul-202510.4 KiB191158

OWNERSD04-Jul-202589 43

OfflineUnwinder.cppD04-Jul-202515.8 KiB369302

OfflineUnwinder.hD04-Jul-20253.1 KiB8953

OfflineUnwinder_impl.hD04-Jul-20251.6 KiB5528

OfflineUnwinder_test.cppD04-Jul-20253.8 KiB12181

ProbeEvents.cppD04-Jul-20257 KiB216162

ProbeEvents.hD04-Jul-20252.1 KiB6936

ProbeEvents_test.cppD04-Jul-20253.4 KiB8653

README.mdD04-Jul-20253.1 KiB9970

RecordFilter.cppD04-Jul-202516 KiB529446

RecordFilter.hD04-Jul-20257.1 KiB142101

RecordFilter_test.cppD04-Jul-202511.1 KiB361270

RecordReadThread.cppD04-Jul-202524.3 KiB686590

RecordReadThread.hD04-Jul-20257.7 KiB222139

RecordReadThread_test.cppD04-Jul-202522.1 KiB586496

RegEx.cppD04-Jul-20252.6 KiB9058

RegEx.hD04-Jul-20251.8 KiB5830

RegEx_test.cppD04-Jul-20251.4 KiB5025

SampleComparator.hD04-Jul-20254.2 KiB12986

SampleDisplayer.hD04-Jul-202510 KiB303245

TEST_MAPPINGD04-Jul-202575 77

ZstdUtil.cppD04-Jul-20256.6 KiB214168

ZstdUtil.hD04-Jul-20251.8 KiB5830

ZstdUtil_test.cppD04-Jul-20253.3 KiB8756

branch_list.protoD04-Jul-20252.9 KiB10790

build_id.hD04-Jul-20253 KiB10866

callchain.hD04-Jul-20255.1 KiB158123

cmd_api.cppD04-Jul-20259.5 KiB299246

cmd_api_impl.hD04-Jul-20251.3 KiB3514

cmd_api_test.cppD04-Jul-20253 KiB10969

cmd_boot_record.cppD04-Jul-20256 KiB193152

cmd_boot_record_test.cppD04-Jul-20251.5 KiB4318

cmd_debug_unwind.cppD04-Jul-202527.2 KiB738641

cmd_debug_unwind_test.cppD04-Jul-20257.7 KiB193137

cmd_dumprecord.cppD04-Jul-202521.3 KiB628554

cmd_dumprecord_test.cppD04-Jul-20253.3 KiB9857

cmd_help.cppD04-Jul-20252.9 KiB9764

cmd_inject.cppD04-Jul-202547.9 KiB1,3471,162

cmd_inject_test.cppD04-Jul-202514.2 KiB373265

cmd_kmem.cppD04-Jul-202525.9 KiB699615

cmd_kmem_test.cppD04-Jul-20254.7 KiB152110

cmd_list.cppD04-Jul-202515 KiB473397

cmd_list_test.cppD04-Jul-20251.5 KiB5927

cmd_merge.cppD04-Jul-202514.6 KiB430364

cmd_merge_test.cppD04-Jul-20253.2 KiB9558

cmd_monitor.cppD04-Jul-202521.9 KiB615502

cmd_monitor_test.cppD04-Jul-20254.1 KiB150102

cmd_record.cppD04-Jul-202592.3 KiB2,4302,084

cmd_record_impl.hD04-Jul-20256.9 KiB11490

cmd_record_test.cppD04-Jul-202555 KiB1,5601,238

cmd_report.cppD04-Jul-202541 KiB1,067934

cmd_report_sample.cppD04-Jul-202538.7 KiB1,014900

cmd_report_sample.protoD04-Jul-20256.1 KiB165141

cmd_report_sample_test.cppD04-Jul-202513.6 KiB326234

cmd_report_test.cppD04-Jul-202525.8 KiB751599

cmd_stat.cppD04-Jul-202541.4 KiB1,136999

cmd_stat_impl.hD04-Jul-202512.6 KiB343275

cmd_stat_test.cppD04-Jul-202526.2 KiB755597

cmd_trace_sched.cppD04-Jul-202514.9 KiB426373

cmd_trace_sched_test.cppD04-Jul-20252.1 KiB6639

command.cppD04-Jul-20259.9 KiB302254

command.hD04-Jul-20257.9 KiB242187

command_test.cppD04-Jul-20259 KiB215163

cpu_hotplug_test.cppD04-Jul-202515.7 KiB504422

dso.cppD04-Jul-202536 KiB1,122934

dso.hD04-Jul-20258.4 KiB243164

dso_test.cppD04-Jul-202516.8 KiB426321

environment.cppD04-Jul-202538 KiB1,2101,020

environment.hD04-Jul-20255.2 KiB186131

environment_test.cppD04-Jul-20255.2 KiB164117

event_attr.cppD04-Jul-202510.7 KiB272209

event_attr.hD04-Jul-20252.1 KiB6432

event_fd.cppD04-Jul-202511.3 KiB334268

event_fd.hD04-Jul-20255.5 KiB16186

event_selection_set.cppD04-Jul-202534.1 KiB1,049899

event_selection_set.hD04-Jul-20258.9 KiB257171

event_selection_set_test.cppD04-Jul-20254.1 KiB9871

event_table.jsonD04-Jul-2025105.6 KiB1,1101,109

event_table_generator.pyD04-Jul-202512.3 KiB340263

event_type.cppD04-Jul-202517.7 KiB603506

event_type.hD04-Jul-20254.2 KiB14092

get_test_data.hD04-Jul-20256.9 KiB14854

gtest_main.cppD04-Jul-20253.7 KiB14195

kallsyms.cppD04-Jul-20258.4 KiB289222

kallsyms.hD04-Jul-20251.8 KiB6021

kallsyms_test.cppD04-Jul-20254.5 KiB146105

libsimpleperf_report_fuzzer.cppD04-Jul-20252.9 KiB8861

main.cppD04-Jul-20253.3 KiB8749

perf_event.hD04-Jul-2025950 3111

perf_regs.cppD04-Jul-20258 KiB281240

perf_regs.hD04-Jul-20252.9 KiB11380

perf_regs_test.cppD04-Jul-20251.2 KiB4019

profcollect.cppD04-Jul-20254.3 KiB141104

read_apk.cppD04-Jul-20256 KiB172129

read_apk.hD04-Jul-20253.4 KiB9550

read_apk_test.cppD04-Jul-20253.5 KiB8657

read_dex_file.cppD04-Jul-20253.4 KiB9468

read_dex_file.hD04-Jul-20251.5 KiB4823

read_dex_file_test.cppD04-Jul-20251.5 KiB4522

read_elf.cppD04-Jul-202521.4 KiB628527

read_elf.hD04-Jul-20253.7 KiB11976

read_elf_test.cppD04-Jul-20259.5 KiB287215

read_symbol_map.cppD04-Jul-20252.7 KiB11070

read_symbol_map.hD04-Jul-20251.1 KiB3915

read_symbol_map_test.cppD04-Jul-20254 KiB12174

record.cppD04-Jul-202558.8 KiB1,7491,607

record.hD04-Jul-202520.4 KiB720524

record_equal_test.hD04-Jul-20254.7 KiB12197

record_file.hD04-Jul-202510.9 KiB300201

record_file.protoD04-Jul-20251.4 KiB6150

record_file_format.hD04-Jul-20253.7 KiB15961

record_file_reader.cppD04-Jul-202530.7 KiB976885

record_file_test.cppD04-Jul-202512.5 KiB345251

record_file_writer.cppD04-Jul-202521.4 KiB696596

record_lib_interface.cppD04-Jul-20257.7 KiB298242

record_lib_test.cppD04-Jul-20255.4 KiB149118

record_test.cppD04-Jul-20259.2 KiB232179

report_lib_interface.cppD04-Jul-202531.5 KiB972826

report_utils.cppD04-Jul-202518.7 KiB532432

report_utils.hD04-Jul-20254.7 KiB160102

report_utils_test.cppD04-Jul-202528.2 KiB633520

sample_tree.hD04-Jul-202512 KiB351267

sample_tree_test.cppD04-Jul-20258.5 KiB243190

simpleperf.rcD04-Jul-2025480 107

simpleperf_dict.dictD04-Jul-202514 11

simpleperf_writer_fuzzer.cppD04-Jul-20256.5 KiB178148

test_util.cppD04-Jul-20256.1 KiB188146

test_util.hD04-Jul-20258.2 KiB214169

thread_tree.cppD04-Jul-202514.3 KiB449371

thread_tree.hD04-Jul-20256.3 KiB179120

thread_tree_test.cppD04-Jul-20254.7 KiB160106

tracing.cppD04-Jul-202519.2 KiB650551

tracing.hD04-Jul-20253.6 KiB13088

tracing_test.cppD04-Jul-20254.4 KiB10775

utils.cppD04-Jul-202514.1 KiB526454

utils.hD04-Jul-20258.1 KiB299223

utils_test.cppD04-Jul-20254 KiB12285

workload.cppD04-Jul-20257 KiB241198

workload.hD04-Jul-20252.5 KiB8147

workload_test.cppD04-Jul-20252.5 KiB8351

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