New Dart DevTools Release 0.2.2

198 views
Skip to first unread message

Kenzie Schmoll

unread,
Mar 2, 2020, 10:43:40 AM3/2/20
to Flutter Public Announcements (flutter-announce)

DevTools 0.2.2 Release Notes

Dart DevTools - A Suite of Performance Tools for Dart and Flutter

General Updates

  • Improve error reporting on connection issues.

  • Fixed an error that occurred when a Dart VM app attempted to register service extensions.

  • Prepared for the Q1 2020 DevTools survey. Be on the lookout for a survey dialog popping up in DevTools. We encourage users to provide feedback and help us improve DevTools! The survey prompt will begin to appear in mid-March.

Memory Updates

Added the ability to collect memory profile information using a Dart command-line interface (CLI) application. 


devtools/packages/devtools/bin/devtools.dart usage:


> dart devtools/bin/devtools.dart --vm-uri VM_Auth_URI --profile-memory fileName --verbose

VM_Auth_URI - token displayed in flutter run e.g., http://127.0.0.1:37141/m6a1twmdRpI=/

fileName - file where statistics will be collected e.g., /home/<username>/Downloads/memory_log

--verbose - optional, displays the timestamp of the collected sample as well as Dart Heap capacity,  ADB total memory and if a GC occurred e.g.,


Collected Sample: [06:00:03.000] capacity=59861240, ADB MemoryInfo total=165960

Collected Sample: [06:00:03.600] capacity=62108944, ADB MemoryInfo total=165960 [GC]

Collected Sample: [06:00:04.000] capacity=83043880, ADB MemoryInfo total=193098


To view the memory JSON file in the DevTools Memory page, copy the file to ~/tmp (Linux) or to the Desktop (Mac). Then, click on the “Source” drop-down to select the JSON file:



To programmatically read the JSON, package:devtools_shared has code to decode the JSON payload.  Add the package devtools_shared to the your pubspec.yaml dependencies section:


dependencies:

  devtools_shared: ^0.1.16


Parse the JSON file using the MemoryJson class e.g.,


import 'package:devtools_shared/devtools_shared.dart';


final jsonPayload = FileSystem().readStringFromFile('/home/<username>/Downloads/memory_log');

final memoryJson = MemoryJson.decode(jsonPayload);

final samples = memoryJson.data;

print('Resident Set Size = ${samples[0].rss}');

print('Android native heap = ${samples[0].adbMemoryInfo.this.nativeHeap}');

 

Format of the JSON file :

{

   "samples": {

     "version": 1,

     "dartDevToolsScreen": "memory"

     "data": [

      {

        "Timestamp": 1581540967479,

        "Rss": 211419136,

        "Capacity": 50956576,

        "Used": 41384952,

        "External": 166176,

        "Gc": false,

        "adb_memoryInfo":{

          "Realtime": 450147758,

          "Java Heap": 7416,

          "Native Heap": 41712,

          "Code": 12644,

          "Stack": 52,

          "Graphics": 0,

          "Private Other": 94420,

          "System": 6178,

          "Total": 162422

        }

      },

    ]

  }

}


DevTools Alpha Updates (Early preview of DevTools written in Flutter)

The alpha version of DevTools written in Flutter is available to try out by clicking the “beaker” icon in the upper-right corner of DevTools. This version is in early preview with only the inspector tab feature complete. It is under active development.


General Updates

  • Added zoom functionality to flame charts in the Timeline and Performance pages. Flame charts can be zoomed in with the ‘W’ key and zoomed out with the ‘S’ key. The chart can also be panned left and right with the ‘A’ and ‘D’ keys, respectively. W-A-S-D navigation is used in other trace viewers, so this should feel familiar if you have experience with other trace viewing software.

Inspector Updates

  • Made the Layout Explorer more robust

Timeline Updates

  • Added timeline grid and timestamps to flame chart visualizations.

  • Added import / export functionality to the timeline. You can export a Timeline snapshot from DevTools and import the file into DevTools using drag-and-drop.

  • Improved performance by using a custom list that defers size calculation to an extent delegate.

  • Fixed a couple null errors.

Performance Updates

  • Added CPU Bottom Up chart to CPU profiler.

Changelog

More details about changes and fixes are available in our changelog.


Reply all
Reply to author
Forward
0 new messages