mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 00:13:50 +00:00
![]() This CL adds an interactive command line tool to analyze heapsnapshots generated by the Dart VM. The tool works by operating on sets of objects. It supports operations like users, transitive closure, union, ... An example usage that loads snapshot, finds all live objects, finds the empty lists in them and prints retainers of the empty lists: ``` % dart bin/explore.dart (hsa) load foo.heapsnapshot (hsa) all = closure roots (hsa) stat all size count class -------- -------- -------- 43861 kb 8371 _Uint8List dart:typed_data ... -------- -------- -------- 108904 kb 400745 (hsa) empty-lists = dfilter (filter all _List) ==0 (hsa) empty-growable-lists = filter (users empty-lists) _GrowableList (hsa) retain empty-growable-lists There are 5632 retaining paths of _GrowableList (dart:core) ⮑ ・UnlinkedLibraryImportDirective.configurations (package:analyzer/src/dart/analysis/unlinked_data.dart) ⮑ ﹢_List (dart:core) ⮑ ・... ``` For now the tool lives only in dart-lang/sdk. TEST=pkg/heapsnapshot/test/*_test.dart Change-Id: I671c2e3ca770e1a5aa3e590e850a5694070b4c3a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261100 Reviewed-by: Tess Strickland <sstrickl@google.com> Commit-Queue: Martin Kustermann <kustermann@google.com> |
||
---|---|---|
.. | ||
bots | ||
buildtools | ||
dart2js | ||
dom | ||
fuchsia | ||
linux_dist_support | ||
package_deps | ||
patches | ||
sdks | ||
spec_parser | ||
test_generators | ||
testing | ||
verify_docs | ||
.gitignore | ||
3xhead_flutter_hooks.sh | ||
addlatexhash.dart | ||
analysis_options.yaml | ||
build.py | ||
canary.dart | ||
copy_dart.py | ||
copy_tree.py | ||
create_pkg_manifest.py | ||
diff_results.dart | ||
download_chromium_sysroot.sh | ||
experimental_features.yaml | ||
FAKE_COMMITS | ||
find_depot_tools.py | ||
gen_fuchsia_test_manifest.py | ||
generate_buildfiles.py | ||
generate_experimental_flags.dart | ||
generate_idefiles.py | ||
generate_package_config.dart | ||
generate_package_config.py | ||
generate_sdk_version_file.py | ||
get_dot_git_folder.py | ||
git_cl_try.sh | ||
gn.py | ||
gn_helpers.py | ||
line_doc_comments.dart | ||
list_dart_files.py | ||
list_dart_files_as_depfile.py | ||
make_version.py | ||
manage_deps.dart | ||
minidump.py | ||
opt_out_files.dart | ||
OWNERS | ||
OWNERS_ANALYZER | ||
OWNERS_BUILD | ||
OWNERS_CFE | ||
OWNERS_ECOSYSTEM | ||
OWNERS_ENG | ||
OWNERS_FOUNDATION | ||
OWNERS_GOOGLE3 | ||
OWNERS_INFRA | ||
OWNERS_PRODUCT | ||
OWNERS_PUB | ||
OWNERS_VM | ||
OWNERS_WASM | ||
OWNERS_WEB | ||
presubmit.sh | ||
promote.py | ||
publish_pkg.py | ||
rev_sdk_deps.dart | ||
run_offsets_extractor.sh | ||
run_with_coredumps_enabled.py | ||
set_ia32_sysroot.sh | ||
set_x64_sysroot.sh | ||
spec_parse.py | ||
task_kill.py | ||
test.dart | ||
test.py | ||
utils.py | ||
validate_test_matrix.dart | ||
VERSION | ||
write_dartdoc_options_file.py | ||
write_revision_file.py | ||
write_version_file.py | ||
yaml2json.dart |