Skip to content

Releases: yandex/demeter

v1.8.0

Choose a tag to compare

@mezentsev mezentsev released this 29 Sep 10:24

Release Changelog

Inject profiler

  • Fixed startup crashes in R8-minified builds caused by loading @Inject constructor classes by their original names after obfuscation.
  • Constructor and parameter names are now captured during bytecode instrumentation. Runtime metric collection no longer uses Class.forName or Kotlin reflection.
  • Dependency links are created only when a match is unambiguous. Constructor timing and thread data remain available.

Compatibility

  • Update the Demeter Gradle plugin and Inject runtime artifacts to 1.8.0 together.
  • Previously instrumented libraries remain supported. Their constructor timing is recorded, but the legacy call cannot restore dependency links.

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@mezentsev mezentsev released this 30 Jul 15:51

Release Changelog

Compose multimodule support

  • Compose instrumentation now supports Android feature and library modules.
  • Configure com.yandex.demeter.compose and demeterCompose in each required module; keep runtime Demeter dependencies in the app module.

Compatibility

  • Updated Kotlin to 2.4.10 and adapted the Compose compiler integration.

Full Changelog: v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@mezentsev mezentsev released this 04 May 19:31

Release Changelog

Coroutine tracer

image
  • Automatically finds all launch/async calls, eliminating manual labeling.
  • Builds a tree of parent-child relationships between Jobs.
  • Measures the duration of each coroutine and logs cancellations and exceptions.
  • Displays all of this in a user-friendly UI right on the device.

Fix

  • #7 IR lowering crash in Demeter Compose plugin: No mapping for symbol

Full Changelog: v1.3.0...v1.6.0

v1.3.0

Choose a tag to compare

@mezentsev mezentsev released this 16 Jan 13:03

Release Changelog

Firefox Profiler

  • JSON format compatible with profiler.firefox.com
  • Complete call stack data with parent-child relationships
  • Multi-threaded execution tracking

export

Flamegraph

  • TXT format compatible with FlameGraph/flamegraph.pl
  • Standard format: thread;frame1;frame2;frameN duration
  • Ready for SVG generation

UI

  • New format selection dialog with 3 options (CSV, Flamegraph, Firefox Profiler)
  • Async export for better UI responsiveness

DB

  • New parentExecutionId for call hierarchy tracking
  • Optimized indices for export queries
  • Recursive SQL queries for call stack extraction

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@mezentsev mezentsev released this 26 Dec 10:16

Release Changelog

Major Plugin Architecture Refactoring

This release introduces a breaking change that separates profiler plugins into lightweight core functionality and optional UI components.


Breaking Changes

Core vs UI Plugin Split

Plugins are now split into:

  • Non-UI plugins - profiling with optional reporter callbacks
  • UI plugins

Migration Example:

// Before
Demeter.init(
    DemeterInitializer(
        context = this,
        plugins = listOf(TracerDemeterPlugin(), InjectDemeterPlugin())
    )
)

// After (with UI)
Demeter.init(
    UiDemeterInitializer(
        context = this,
        uiPlugins = listOf(TracerUiDemeterPlugin(), InjectUiDemeterPlugin())
    )
)

// After (no-UI)
Demeter.init(
    DemeterInitializer(
        plugins = listOf(
            TracerDemeterPlugin(reporter = { payload -> /* handle */ })
        )
    )
)

New Dependencies

implementation("com.yandex.demeter:profiler-tracer-ui-plugin:1.2.0")
implementation("com.yandex.demeter:profiler-inject-ui-plugin:1.2.0")
implementation("com.yandex.demeter:profiler-compose-ui-plugin:1.2.0")

v1.1.5

Choose a tag to compare

@mezentsev mezentsev released this 28 Nov 14:42

Fix

  • Changed minSdk and Java version to improve compatibility across a wider range of devices

v1.1.3

Choose a tag to compare

@mezentsev mezentsev released this 15 Sep 11:07

Features

  • Adds more accurate documentation on connecting dependencies and plugins
  • Adds dependencies checker to avoid unclear errors with plugins
  • Adds #4 buildTypes configuration

Full Changelog: v1.0.0...v1.1.3

v1.0.0

Choose a tag to compare

@mezentsev mezentsev released this 28 Feb 14:55
  • New: Compose recompositions plugin
  • Fix: sort logs by name and thread
  • Fix: export data to .csv format

Full Changelog: v0.38.0...v1.0.0

0.38.0

0.38.0 Pre-release
Pre-release

Choose a tag to compare

@mezentsev mezentsev released this 11 Nov 20:46

Initial public release