vm_snapshot_analysis 0.7.2 vm_snapshot_analysis: ^0.7.2 copied to clipboard
Utilities for analysing AOT snapshot size.
- Upgrade to
- Populate the pubspec
- Migrate to null-safety.
- Update to latest args, path, meta dependency.
- Fix for flutter/flutter#76313 causing issues with profiles containing WSRs serialized as smi-s instead of actual WSR objects.=
-d) flag for
summarycommand to make the display depth of outputted dependency trees configurable.
-d) flag for
generateCallGraphWithDominatorsmethod that generates a
CallGraphobject from precompiler trace.
- Fix bug causing name clash for Type class.
compareProgramInfothat takes in two program info objects and outputs a
Mapobject containing the diff data.
- Add support for package paths that look like
commandsback to lib.
- Fix broken package by moving non-executable file out of bin/ directory.
dart:iodependency from package
lib, and move
loadProgramInfoutil method with
loadProgramInfoFromJson, which expects an
Objectparameter instead of a
buildComparisonTreemapnow expects two
newJsoninstead of two
comparecommand now prints difference breakdown by node type when this information is available.
buildComparisonTreemapfor constructing treemap representing the diff between two size profiles.
- Implemented support for extracting call graph information from the AOT
compiler trace (
- New command
explain dynamic-callswhich estimates the impact of different dynamic calls on the resulting AOT snapshot size using information from the size dump (e.g. V8 snapshot profile) and AOT compiler trace.
summarycommand can now use information from the AOT compiler trace to group packages/libraries together with their dependencies to given more precise estimate of how much a specific package/library brings into the snapshot.
- Extract treemap construction code into a separate library, to make it reusable.
- Add ability to collapse leaf nodes in a treemap created from V8 snapshot
profile. This behavior is programmatically controlled by
TreemapFormat formatparameter and from CLI via
--formatflag. The following options are available
ProgramInfoas a treemap, individual snapshot nodes are ignored.
collapsed, but also folds size information from nested functions into outermost function (e.g. top level function or a method) producing easy to consume output.
data-and-codecollapses snapshot nodes based on whether they represent data or executable code.
object-type(default) collapses snapshot nodes based on their type only.
- When computing
ProgramInfofrom a V8 snapshot profile no longer create
Codenodes which are owned by a function - instead directly attribute the
Codenode itself and all retained nodes into
ProgramInfoNodefor the function itself. For stubs (including allocation stubs) create an artificial
functionNodeinstead of using
NodeType.other. The only remaining use of
NodeType.otheris for fields.
- Update CLI help message to avoid referring to a snapshot created by pub as the name of the script.
- Fix owner computation code for V8 profiles: the size of a snapshot node
which corresponds to a
ProgramInfoNodeshould be attributed to that
ProgramInfoNodeand not to its parent. For example
Functionnode corresponds to
functionNode, previously the size of
Functionnode would be attributed to the parent of this
ProgramInfoNode, but it should be attributed to the node itself.
README.mdto include more information on how to pass flags to Dart AOT compiler.
ProgramInfoNode.sizedocumentation to clarify the meaning of the member.
- Initial release