OLD | NEW |
(Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file |
| 4 |
| 5 part of repositories; |
| 6 |
| 7 class TopRetainingInstancesRepository |
| 8 implements M.TopRetainingInstancesRepository { |
| 9 Future<Iterable<M.RetainingObject>> get(M.IsolateRef i, M.ClassRef c) async { |
| 10 S.Isolate isolate = i as S.Isolate; |
| 11 S.Class cls = c as S.Class; |
| 12 assert(isolate != null); |
| 13 assert(cls != null); |
| 14 final raw = await isolate.fetchHeapSnapshot(true).last; |
| 15 final snapshot = new HeapSnapshot(); |
| 16 await snapshot.loadProgress(isolate, raw).last; |
| 17 return (await Future.wait(snapshot.getMostRetained(isolate, |
| 18 classId: cls.vmCid, |
| 19 limit: 10))) |
| 20 .map((object) => new S.RetainingObject(object)); |
| 21 } |
| 22 } |
OLD | NEW |