Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(571)

Side by Side Diff: runtime/observatory/lib/src/repositories/top_retaining_instances.dart

Issue 2502283003: Add a version of heap snapshots that use only fields and stack frames as roots and only include ins… (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file 3 // BSD-style license that can be found in the LICENSE file
4 4
5 part of repositories; 5 part of repositories;
6 6
7 class TopRetainingInstancesRepository 7 class TopRetainingInstancesRepository
8 implements M.TopRetainingInstancesRepository { 8 implements M.TopRetainingInstancesRepository {
9 Future<Iterable<M.RetainingObject>> get(M.IsolateRef i, M.ClassRef c) async { 9 Future<Iterable<M.RetainingObject>> get(M.IsolateRef i, M.ClassRef c) async {
10 S.Isolate isolate = i as S.Isolate; 10 S.Isolate isolate = i as S.Isolate;
11 S.Class cls = c as S.Class; 11 S.Class cls = c as S.Class;
12 assert(isolate != null); 12 assert(isolate != null);
13 assert(cls != null); 13 assert(cls != null);
14 final raw = await isolate.fetchHeapSnapshot(true).last; 14 final raw = await isolate.fetchHeapSnapshot("VM", true).last;
Cutch 2016/11/18 20:40:31 HeapSnapshotRoots.VM
15 final snapshot = new HeapSnapshot(); 15 final snapshot = new HeapSnapshot();
16 await snapshot.loadProgress(isolate, raw).last; 16 await snapshot.loadProgress(isolate, raw).last;
17 return (await Future.wait( 17 return (await Future.wait(
18 snapshot.getMostRetained(isolate, classId: cls.vmCid, limit: 10))) 18 snapshot.getMostRetained(isolate, classId: cls.vmCid, limit: 10)))
19 .map((object) => new S.RetainingObject(object)); 19 .map((object) => new S.RetainingObject(object));
20 } 20 }
21 } 21 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698