Releases: google/perfetto
Releases · google/perfetto
Perfetto v21.0
v21.0 - 2021-11-01:
Tracing service and probes:
* Added reporting of last 8 PERFETTO_LOG() entries and crash keys to
crash tombstones on Android.
* Changed kallsym parser to save 100ms for starting a tracing session with
enable_ksyms=true.
* Removed advertisement of the built-in data sources "android.heapprofd",
"android.java_hprof", "linux.perf" on Linux and other platforms. Built-in
data sources are only used to lazy-start daemons on Android OS.
* Changed ACL files on Android atrace.rc to support to up to 24 ftrace cpus.
No change on Linux which remains unlimited.
Trace Processor:
* Changed protobuf decoders to use less stack and fall back on heap sooner
(before: 16KB of stack per decoder, after: 1.6KB). It caused problems with
some embedders which use smaller per-thread stacks.
* Added support for SPAN OUTER JOIN on unpartitioned tables.
* Improved performance of as_pandas_dataframe() in the Python API by 16x.
UI:
* Added visualization of direct_reclaim ftrace events.
SDK:
* Added perfetto::{Flow,TerminatingFlow} to the track-event library.
Perfetto v20.1
v20.1 - 2021-10-05:
Tracing service and probes:
* Fixed standalone Windows build. Updated the llvm-win toolchain.
v20.0 - 2021-10-03:
Tracing service and probes:
* Removed DCHECK that would cause crashes when a debug build of the service
is used with a producer built with -DNDEBUG.
* Changed the service-side field-level filtering configuration protobuf
field number, because the feature had a bug. This is effectively
equivalent to deprecating the feature and reintroducing it under a
different name.
* Added support for boot tracing on Android. Early kernel tracing (prior to
the point when /data is mounted) is not yet supported. For instructions
see /docs/case-studies/android-boot-tracing.md .
Trace Processor:
* Added reqiurement of separating queries by semi-colon (;) followed by
new-line when specifying a query file with -q to trace processor shell.
* Added "ancestor_slice_by_stack" and "descendant_slice_by_stack" table
functions to walk up and down the slice stacks.
* Overhauled windowed sorting to be based on packet ordering and
lifecycle events inside the trace instead of time-based ordering.
* Removed |SortingMode::kForceFlushPeriodWindowedSort| due to changes to the
sorting algorithm, which is now based on Flush events rather than time.
Embedders should switch to |SortingMode::kDefaultHeuristics|. Other
SortingMode enum values are no-ops and will be removed in future versions.
UI:
* Added initial flamegraph support for traced_perf callstack samples.
* Added initial Pivot table for aggregation of userspace slices. The feature
is disabled by default for and requires manual enabling via
https://ui.perfetto.dev/#!/flags .
SDK:
* Changed DCHECK and DLOGs to be always disabled in SDK builds, regardless
of NDEBUG.
Perfetto v19.0
v19.0 - 2021-09-02:
Tracing service and probes:
* Added ftrace clock reporting to the trace.
Trace Processor:
* Added support for longs/doubles to RUN_METRIC.
* Added power profile data for sunfish, redfin, and bramble.
* Added experimental Python library for computing slice breakdowns.
* Fixed parsing of JSON escape sequences.
* Fixed JSON trace detection.
UI:
* Added local cacheing of traces. Traces are reloaded in case of refresh or
tab being discarded by the browser.
* Added icon to distinguish metric-derived tracks.
* Added release channel selector to feature flags page.
* Fixed crash with null slice names.
SDK:
* Added some missing NESTABLE_ASYNC legacy trace macros.
* Fixed reporting of producer uid in --query.
* Fixed version numbering scheme for minor versions. Previously versions
were numbered as like v19.0.42 where 42 represented the number of commits
since the last major version release. This was ambiguous in the presence
of branches. Now versions are numbered like v19.0-ab12cd34 where ab12cd34
is the shortened Git commit-ish.
Perfetto v18.0
v18.0 - 2021-08-02:
Tracing service and probes:
* Added cross-compiler toolchains for Linux-{arm,64} based on Debian Sid.
These will be used for generating monthly releases' prebuilts via LUCI.
Trace Processor:
* Added 'android_gpu' metric to report residency information for each GPU
frequency (via `trace_processor_shell --run-metrics android_gpu`).
* Removed the RawQuery RPC interface.
UI:
* Added a highlighted section to thread slices to visualize CPU time
(darker) verses wall time (lighter).
* Added global counter tracks for perf counters (e.g. "CPU 0 cycles", "CPU 0
instructions") when the 'linux.perf' data source (traced_perf) is used.
* Added a (feature) 'Flags' page to enable/disable individual metrics.
* Fixed races that could cause occasional crashes when loading a trace
from a permalink.
SDK:
* Fix undefined reference on ~TracingMuxerFake when building the SDK.