| OLD | NEW |
| 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(true).last; |
| 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(snapshot.getMostRetained(isolate, | 17 return (await Future.wait( |
| 18 classId: cls.vmCid, | 18 snapshot.getMostRetained(isolate, classId: cls.vmCid, limit: 10))) |
| 19 limit: 10))) | 19 .map((object) => new S.RetainingObject(object)); |
| 20 .map((object) => new S.RetainingObject(object)); | |
| 21 } | 20 } |
| 22 } | 21 } |
| OLD | NEW |