Releases: google/perfetto
Releases · google/perfetto
Perfetto v39.0
v39.0 - 2023-11-15:
Tracing service and probes:
* Added reporting of TZ offset under system_info.timezone_off_mins .
* Added no_flush option to DataSourceDescriptor to avoid unnecessary IPC
roundtrips to flush data sources like track_event that rely uniquely on
server-side scraping.
* Added support for running on Linux & Android systems configured with 16K
pagetables.
Trace Processor:
* New android_boot metric.
* Added new PerfettoSQL syntax (CREATE PERFETTO VIEW) for adding schemas to views.
* Support perf.data import format.
* Add dvfs and cpu_idle to stdlib.
UI:
* Add a new type of debug tracks: counter.
* Improved visualization of timestamps for durations.
Perfetto v38.0
v38.0 - 2023-10-10:
Tracing service and probes:
* Added capability to transfer and clear buffers on CLONE_SNAPSHOT.
* Added new service for relaying IPC messages from local producers to a
remote tracing instance.
Trace Processor:
* Added new PerfettoSQL syntax (INCLUDE PERFETTO MODULE) for including
tables/views/functions defined in SQL modules.
* Added new PerfettoSQL syntax (CREATE PERFETTO TABLE) for defining analytic
tables in SQL.
* Added new PerfettoSQL syntax (CREATE PERFETTO MACRO) for defining macros
in SQL.
* Added TO_REALTIME function to convert timestamps to the realtime clock.
* Added support for parsing binder_command and binder_return events.
UI:
* Added support for zooming when using deep-links.
* Added track for displaying screenshots in traces.
* Added support for displaying UTC timestamps.
* Added capability to list, search and debug plugin tracks.
* Added plugins with commands for pinning tracks for latency and large
screen debugging in Android.
Perfetto v37.0
v37.0 - 2023-08-10:
Tracing service and probes:
* Fixed a bug which would cause sessions cloned with CLONE_SNAPSHOT to not
inherit the trace filtering config.
* Fixed a bug that would cause flushes to be acked prematurely in
traced_probes if the android.package_list data source is present.
SDK:
* Fix build with MSVC.
UI:
* Added command palette (CTRL/Meta+Shift+P).
* Added grouping of global tracks into groups to reduce visual pollution.
* Added ability to toggle timestamps between trace / boot / wall time.
* Added recording UI for callstack sampler.
* Added "Viz" page to run chart query results with Vega-Lite.
* Highlight debuggable apps, which might have worse performance
characteristics, with a chip on the corresponding tracks.
Misc:
* master -> main branch migration. HEAD is now main, master is for now a
mirror and will become a stale frozen snapshot.
Perfetto v36.1
v36.1 - 2023-07-06:
Trace Processor:
* Fix compile on Windows.
v36.0 - 2023-07-05:
Tracing service and probes:
* Fixed unnecessary reads of thread files /proc when scraping process names.
Trace Processor:
* Rewrote filtering engine to be significantly faster on a wide range of
common queries.
* Significantly improved quality of PerfettoSQL error messages.
* Added API to retrieve last executed statement from iterator.
* Added support for filtering rows by a regex.
UI:
* Fixed flow events working for async tracks.
* Added table viewer for slice-like tables.
SDK:
* Reduce binary size impact of macro and template expansions.
Perfetto v35.0
v35.0 - 2023-06-07:
Tracing service and probes:
* Compression has been moved from perfetto_cmd to traced. Now compression is
supported even with write_into_file. The `compress_from_cli` config option
can be used to restore the old behavior.
* Changed the android.statsd datasource to batch multiple atoms into
a single trace packet. This improves performance and information
density.
Trace Processor:
* Fixed protozero parsing code to support field ids larger than
2^16 - 1. protozero now supports field ids up to 1,000,000
See https://github.com/google/perfetto/issues/510.
UI:
* Add support for deep links into the UI via query parameters.
* Fixed multiple issues around the display of track event log
messages See https://github.com/google/perfetto/issues/507.
Many thanks to the 35 contributors to this release: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], and [email protected].
Perfetto v34.0
v34.0 - 2023-05-02:
Tracing service and probes:
* --continuous-dump in tools/java_heap_dump now keeps recording until it
receives CTRL+C.
UI:
* Add support for parsing large integers from Trace Processor into
bigint. This is the default behaviour for unknown fields and can
be enabled specifically via the LONG and LONG_NULL column types.
SDK:
* Changed the type of the static constexpr metadata on protozero
generated bindings from a function returning the metadata to
metadata itself. For a field 'foo' the variable kFoo previously
defined as:
`static constexpr FieldMetadata_Foo kFoo() = { return {}; };`
it is now defined as:
`static constexpr FieldMetadata_Foo kFoo;`
This is a breaking change for users who directly access field
metadata.
* The new DataSourceBase::OnFlush() method allows users to properly handle
Flush requests.
Perfetto v33.1
v33.1 - 2023-03-03:
Identical to v33.0. Version was bumped to work around prebuilt infra failures.
v33.0 - 2023-03-02:
All:
* Switched to a C++17-only project by removing C++11 opt-out. This completes
the migration started in v31.0.
SDK:
* Tracing::Initialize() can be called more than once to initialize different
backends separately.
* Reduce binary size impact of autogenerated code.
Perfetto v32.1
v32.1 - 2023-02-01:
Trace Processor:
* Fix build on windows.
v32.0 - 2023-02-01:
Tracing service and probes:
* Added an explicit TraceUuid packet. The tracing service now always
generates a UUID, even if TraceConfig.trace_uuid_msb/lsb is empty.
Trace Processor:
*
UI:
*
SDK:
* Add perfetto::Tracing::ActivateTriggers() function.
* Made it possible to declare track event categories in a C++ namespace
with PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE, allowing multiple category
sets to be used in one same translation unit. Correspondingly, the
PERFETTO_COMPONENT_EXPORT and PERFETTO_TRACK_EVENT_NAMESPACE macros have
been deprecated in favor of this new functionality.
* Deprecated the PERFETTO_COMPONENT_EXPORT macro in favor of
PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS.
* Added TracingInitArgs::enable_system_consumer configuration option, that
allows the linker to discard the consumer IPC, if not required.
Perfetto v31.0
v31.0 - 2022-11-10:
Tracing service and probes:
* Added support for collecting Android Trusty ftrace events.
* Fixed resetting syscall filter when recording selected syscalls.
Trace Processor:
* Improved error messages on SQL syntax errors.
* Improved performance of queries containing GLOB. Handling of GLOB
constraints now happens inside trace processor instead of SQLite.
* Added support for parsing Android Trusty ftrace events.
UI:
* Added support for metatracing UI code and integrate with trace processor
metatracing.
* Added support for scrolling to a time region using the postMessage API.
* Enabled Pivot table functionality by default.
* Fixed downloading of Java heap profiles.
SDK:
* Switched to require C++17 by default. A time-limited opt-out exists but
is planned to be removed in v34. Please contact us at
[email protected] if you have thoughts or concerns on this
move.
Perfetto v30.0
v30.0 - 2022-10-06:
Trace Processor:
* Fixed parsing of "R+" (preempted) and "I" (idle kernel thread) end states
of sched_switch events, collected on Linux kernels v4.14 and above.
Previously, preemption was not recognised, and idle was reported as
"x" (task dead). See commit c60a630cfe0.
* Add support for parsing sys_write syscalls.
* Remove the thread_slice table: all columns have moved to the slice table
and thread_slice exists as a view for backwards compatibility. This view
will also be removed in the future
* Add Base64 encode SQL function.
* Add support for importing function graph ftrace events.
* Add support for importing V4L2 ftrace events.
* Add support for importing virtio-video ftrace events.
UI:
* Fix downloading profiles from flamegraphs.
* Enable Pivot table support by default.
SDK:
* Add support for disallowing concurrent tracing sessions.