diff options
| author | 2024-09-17 09:43:00 +0100 | |
|---|---|---|
| committer | 2024-12-18 17:07:43 +0000 | |
| commit | 4424d49087e4c366d68bedf46606ded2c5b4a43f (patch) | |
| tree | bdc752ff0629d63ec7537634f39e2be203c315c6 /libs/androidfw/AssetsProvider.cpp | |
| parent | 41ef600b957a2e1625f51bec4f8b2c3aa76e24cb (diff) | |
Add a Java Perfetto SDK API
Utilizing Ibb08e8b6cab7d86ac2c1d57c621c9074a4cb4077
we add a JNI layer to create and reuse Perfetto tracing
objects.
To avoid GC churn, we reuse these objects from an LRUCache.
The API is something like:
PerfettoTraceExtras = PerfettoTraceExtras.addArg(..).addFlow(..);
PerfettoTrace.instant(category, extras);
There is support for the following Perfetto constructs:
1. Categories
2. DebugArgs (k,v pairs)
3. Flows
4. DynamicTracks (NamedTracks)
5. RegisteredTracks (for async slice and counters)
6. Counters (int and double)
Arbitrary protos are not supported yet. If we go that far, we
should perhaps serialize the protos directly into the shmem (or
via an intermediate ring buffer) without going through JNI.
Test: atest PerfettoTraceTest
Change-Id: Icd23eed60d97cd2e9b65679d2aee0190aa7476b0
Bug: 303199244
Flag: android.os.perfetto_sdk_tracing_v2
Diffstat (limited to 'libs/androidfw/AssetsProvider.cpp')
0 files changed, 0 insertions, 0 deletions