# perfetto

Published articles for perfetto.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Caught Sleeping at Work(queue) -- Zephyr Podcast #050

DevFeed: [Caught Sleeping at Work(queue) -- Zephyr Podcast #050](<https://devfeed.tech/articles/caught-sleeping-at-work-queue-zephyr-podcast-050-38674.md>)

Original publisher: [Read original article](<https://zephyrproject.org/caught-sleeping-at-workqueue-zephyr-podcast-050/>)

Author: Benjamin Cabé

Published: 2026-09-11T12:46:06Z

Content type: news

Language: en

Sources: [Zephyr Project](<https://devfeed.tech/sources/zephyr-project-2.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [ctf](<https://devfeed.tech/topics/ctf.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Arduino](<https://devfeed.tech/topics/arduino.md>), [RISC-V](<https://devfeed.tech/topics/riscv.md>), [cortex m4](<https://devfeed.tech/topics/cortex-m4.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [Modbus](<https://devfeed.tech/topics/modbus.md>), [USB](<https://devfeed.tech/topics/usb.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [ctf](<https://devfeed.tech/tags/ctf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [linux](<https://devfeed.tech/tags/linux.md>), [modbus](<https://devfeed.tech/tags/modbus.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [podcast](<https://devfeed.tech/tags/podcast.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [risc-v](<https://devfeed.tech/tags/risc-v.md>), [usb](<https://devfeed.tech/tags/usb.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>)

### AI overview

Episode 50 of the Zephyr podcast covers the Zephyr Developer Summit schedule, Analog Devices' acquisition of Alif Semiconductor, new sensor and board support, SMP coredump improvements, CTF trace conversion to Perfetto, WebAssembly Micro Runtime documentation, and other Zephyr developments.

### Source excerpt

ADI buys Alif, WebAssembly in Zephyr, CTF traces reach Perfetto, and why you should never sleep in the system workqueue.

## How R8 made Kotlin Coroutines on Android 2x faster

DevFeed: [How R8 made Kotlin Coroutines on Android 2x faster](<https://devfeed.tech/articles/how-r8-made-kotlin-coroutines-on-android-2x-faster-22684.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/07/how-r8-made-kotlin-coroutines-2x-faster.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-07-27T13:00:00Z

Content type: article

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [R8](<https://devfeed.tech/topics/r8.md>), [Android](<https://devfeed.tech/topics/android.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [compose](<https://devfeed.tech/tags/compose.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>), [r8](<https://devfeed.tech/tags/r8.md>)

### AI overview

This article explains how R8 in AGP 9.2.0 optimizes Atomic*FieldUpdater calls into Unsafe variants, improving common operations by 2x to 4x. The optimization particularly benefits kotlinx.atomicfu and can make launching and cancelling Kotlin coroutines up to 2x faster. It also describes how coroutine overhead affected Jetpack Compose performance and how ART method traces helped identify bottlenecks.

### Source excerpt

Posted by Andrei Shikov, Senior Software Engineer, Android Toolkit and Jonathan Starup, Software Engineer, R8 Team Starting from AGP 9.2.0, R8 optimizes most Atomic*FieldUpdater calls into Unsafe variants that perform 2x to 4x better on common operations. This has a particularly large impact on the kotlinx.atomicfu library that implements atomics for kotlinx.coroutines, making launching and cancelling coroutines up to 2x faster. In order to get the benefits, update your AGP to 9.2.0 or above. With the majority of Android apps adopting Kotlin as their main language of choice, kotlinx.coroutines has become a de-facto standard for asynchronous programming. The library offers a well-designed and structured way of managing concurrent flows that is native to Kotlin. Jetpack Compose was no exception, adopting coroutines for managing pointer events, animations and other interactions. At the time of writing, most concurrent APIs in Compose call suspend functions under the hood and are launching and/or cancelling coroutines to handle updates. As the Compose team started to investigate performance, coroutines were discovered to be a bottleneck for many operations that happen outside of composition. As an example, 80% of the time spent on creating and updating Modifier.clickable was consumed by launching and cancelling internal coroutines that handled InteractionSource updates. Based on those observations, much of early performance work was focused on removing coroutines from the default path and delaying initialization until necessary. The cost of a coroutine The easiest way to analyze a function's internal behavior on Android is to capture an Android Runtime (ART) method trace. An ART method trace is a tool that records the execution flow of an app, showing exactly which methods are called, their order, and how much time is spent in each, allowing developers to identify performance bottlenecks. For an empty LaunchedEffect { } call, it would look something like this: LaunchedE

## Куда уходит память? Семплирующее профилирование колонок с Алисой в проде

DevFeed: [Куда уходит память? Семплирующее профилирование колонок с Алисой в проде](<https://devfeed.tech/articles/article-24865.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1054774/>)

Author: Cthutq66a (Яндекс)

Published: 2026-07-16T07:02:46Z

Content type: tutorial

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [c/c++](<https://devfeed.tech/topics/c-c-plus-plus.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [perforator](<https://devfeed.tech/tags/perforator.md>), [tag-2d1d9199270a](<https://devfeed.tech/tags/tag-2d1d9199270a.md>), [tag-4004cf5948d3](<https://devfeed.tech/tags/tag-4004cf5948d3.md>), [tag-967d8467ce56](<https://devfeed.tech/tags/tag-967d8467ce56.md>), [tag-d346fb5ae499](<https://devfeed.tech/tags/tag-d346fb5ae499.md>)

### AI overview

The article explains how Yandex analyzes memory consumption in production across Linux smart speakers with Alice. It focuses on inexpensive sampling of dynamic allocations because the devices have limited memory and full allocation tracing is too costly. The article compares tools such as Perfetto with heapprofd and Perforator and describes constraints including memory, flash storage, and 32-bit ARM compatibility.

### Source excerpt

Типичная умная колонка с Алисой -- это скромное железо и совсем немного оперативной памяти: у младших моделей её всего 256 МБ на всё устройство сразу. И за каждый мегабайт идёт настоящая борьба между множеством команд и компонентов: бизнес-логикой, обработкой звука, локальными нейросетями. Ежедневно мы собираем и анализируем memory-дампы с миллионов колонок -- нам важно понимать, куда уходят эти драгоценные мегабайты. Меня зовут Сергей, я работаю в команде, которая пишет прикладной код на C/C++ для умных устройств с Алисой (например, колонок, телевизоров и автомобилей). Под катом расскажу, как мы построили и используем инструмент для анализа потребления памяти в проде на нашем флоте Linux-колонок. Читать далее

## Metro 1.0.0 Is Stable as a Kotlin Multiplatform Compile-Time Dependency Injection Framework

DevFeed: [Metro 1.0.0 Is Stable as a Kotlin Multiplatform Compile-Time Dependency Injection Framework](<https://devfeed.tech/articles/metro-is-stable-39040.md>)

Original publisher: [Read original article](<https://www.zacsweers.dev/metro-is-stable/>)

Author: Zac Sweers

Published: 2026-04-27T21:07:22Z

Content type: release

Language: en

Sources: [Zac Sweers](<https://devfeed.tech/sources/zac-sweers.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>)

Tags: [build-performance](<https://devfeed.tech/tags/build-performance.md>), [build-times](<https://devfeed.tech/tags/build-times.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [metro](<https://devfeed.tech/tags/metro.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [stable](<https://devfeed.tech/tags/stable.md>)

### AI overview

Metro 1.0.0 is now stable. The Kotlin multiplatform compile-time dependency injection framework uses a compiler plugin and provides API-stable runtime APIs, MetroX artifacts, and a Gradle plugin unless marked experimental. The article also describes build-performance improvements and compile-time validation features.

### Source excerpt

New here? Metro is a multiplatform, compile-time dependency injection framework for Kotlin implemented as a compiler plugin. Metro 1.0.0 is out now and stable. This means that its runtime APIs (runtime, MetroX artifacts, Gradle plugin, etc.) are now API-stable unless annotated with an experimental annotation. This

## Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦

DevFeed: [Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦](<https://devfeed.tech/articles/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto-25737.md>)

Original publisher: [Read original article](<https://blog.shreyaspatil.dev/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto/>)

Author: Shreyas Patil

Published: 2023-03-13T13:00:39Z

Content type: tutorial

Language: en

Sources: [Shreyas Patil's Blog](<https://devfeed.tech/sources/shreyas-patil-s-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [browser](<https://devfeed.tech/tags/browser.md>), [commands](<https://devfeed.tech/tags/commands.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tracing](<https://devfeed.tech/tags/tracing.md>)

### AI overview

A practical Android tutorial on using Perfetto system tracing to investigate UI slowness and jank. It creates a sample app with deliberately heavy main-thread work, records a trace, and examines the resulting timelines to locate performance bottlenecks.

### Source excerpt

Master Android app performance profiling with Perfetto. Learn how to identify and fix UI janks and bottlenecks using system tracing.

## 2022 intern projects include sampling support for magic-trace

DevFeed: [2022 intern projects include sampling support for magic-trace](<https://devfeed.tech/articles/what-the-interns-have-wrought-2022-edition-20235.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/what-the-interns-have-wrought-2022/>)

Author: Yaron Minsky

Published: 2022-08-25T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [google](<https://devfeed.tech/tags/google.md>), [intel](<https://devfeed.tech/tags/intel.md>), [internship](<https://devfeed.tech/tags/internship.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [process](<https://devfeed.tech/tags/process.md>), [processor](<https://devfeed.tech/tags/processor.md>), [traces](<https://devfeed.tech/tags/traces.md>)

### AI overview

The article highlights projects completed during Jane Street's 2022 internship season. It describes sampling support added to the open-source magic-trace tool, along with work integrating Datafetcher with Incremental and improving Quickcheck's contract syntax.

### Source excerpt

We're once again at the end of our internship season, and it's my task to provide a few highlights of what the interns accomplished while they were here.

## Investigating Slow Android CI Heap Analysis on API 23 Emulators

DevFeed: [Investigating Slow Android CI Heap Analysis on API 23 Emulators](<https://devfeed.tech/articles/of-sharks-and-heaps-of-sticky-marshmallows-25627.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/of-sharks-and-heaps-of-sticky-marshmallows>)

Author: Pierre-Yves Ricau

Published: 2022-04-07T19:57:56Z

Content type: article

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [ci](<https://devfeed.tech/tags/ci.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [leakcanary](<https://devfeed.tech/tags/leakcanary.md>), [memory](<https://devfeed.tech/tags/memory.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [trace](<https://devfeed.tech/tags/trace.md>)

### AI overview

This deep-dive investigates why Android CI heap analysis occasionally took several minutes on API 23 emulators. The author reproduces the issue locally, uses tracing and heap dumps, and examines unexpectedly numerous sticky-class GC roots in Shark, LeakCanary's heap dump parser.

### Source excerpt

👋 Hi, this is P.Y., I work as an Android Engineer at Block, the rockey company formerly known as Square. I spend a lot of time focusing on performance and try to share my experience with deep-dive bl

## Tracing main thread messages

DevFeed: [Tracing main thread messages](<https://devfeed.tech/articles/tracing-main-thread-messages-25631.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/tracing-main-thread-messages>)

Author: Pierre-Yves Ricau

Published: 2022-01-27T19:53:56Z

Content type: tutorial

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [tracing](<https://devfeed.tech/topics/tracing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [logger](<https://devfeed.tech/tags/logger.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [tracing](<https://devfeed.tech/tags/tracing.md>)

### AI overview

This tutorial explains how to inspect Android main-thread activity in Perfetto traces. It uses the seldom-used Looper.setMessageLogging() API to log message dispatches and adds trace sections for each main-thread message with the AndroidX tracing library.

### Source excerpt

👋 Hi, this is P.Y., I work as an Android Engineer at Block, the non-fungible company formerly known as Square. I spend a lot of time focusing on performance and try to share my experience with deep-d