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

Side by Side Diff: runtime/observatory/lib/object_graph.dart

Issue 2266343002: Converted Observatory heap-snapshot element (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Removed debug code Created 4 years, 3 months 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
« no previous file with comments | « runtime/observatory/lib/models.dart ('k') | runtime/observatory/lib/repositories.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library object_graph; 5 library object_graph;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:typed_data'; 9 import 'dart:typed_data';
10 10
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 var result = _mostRetained; 355 var result = _mostRetained;
356 if (classId != null) { 356 if (classId != null) {
357 result = result.where((u) => u.vmCid == classId); 357 result = result.where((u) => u.vmCid == classId);
358 } 358 }
359 if (limit != null) { 359 if (limit != null) {
360 result = result.take(limit); 360 result = result.take(limit);
361 } 361 }
362 return result; 362 return result;
363 } 363 }
364 364
365 Future process(statusReporter) async { 365 Stream<List> process() {
366 // We build futures here instead of marking the steps as async to avoid the 366 final controller = new StreamController<List>.broadcast();
367 // heavy lifting being inside a transformed method. 367 (() async {
368 // We build futures here instead of marking the steps as async to avoid th e
369 // heavy lifting being inside a transformed method.
368 370
369 statusReporter.add("Remapping $_N objects..."); 371 controller.add(["Remapping $_N objects...", 0.0]);
370 await new Future(() => _remapNodes()); 372 await new Future(() => _remapNodes());
371 373
372 statusReporter.add("Remapping $_E references..."); 374 controller.add(["Remapping $_E references...", 15.0]);
373 await new Future(() => _remapEdges()); 375 await new Future(() => _remapEdges());
374 376
375 _addrToId = null; 377 _addrToId = null;
376 _chunks = null; 378 _chunks = null;
377 379
378 statusReporter.add("Finding depth-first order..."); 380 controller.add(["Finding depth-first order...", 30.0]);
379 await new Future(() => _dfs()); 381 await new Future(() => _dfs());
380 382
381 statusReporter.add("Finding predecessors..."); 383 controller.add(["Finding predecessors...", 45.0]);
382 await new Future(() => _buildPredecessors()); 384 await new Future(() => _buildPredecessors());
383 385
384 statusReporter.add("Finding dominators..."); 386 controller.add(["Finding dominators...", 60.0]);
385 await new Future(() => _buildDominators()); 387 await new Future(() => _buildDominators());
386 388
387 _firstPreds = null; 389 _firstPreds = null;
388 _preds = null; 390 _preds = null;
389 391
390 _semi = null; 392 _semi = null;
391 _parent = null; 393 _parent = null;
392 394
393 statusReporter.add("Finding retained sizes..."); 395 controller.add(["Finding retained sizes...", 75.0]);
394 await new Future(() => _calculateRetainedSizes()); 396 await new Future(() => _calculateRetainedSizes());
395 397
396 _vertex = null; 398 _vertex = null;
397 399
398 statusReporter.add("Loaded"); 400 controller.add(["Loaded", 100.0]);
399 return this; 401 controller.close();
402 }());
403 return controller.stream;
400 } 404 }
401 405
402 List<ByteData> _chunks; 406 List<ByteData> _chunks;
403 407
404 int _kObjectAlignment; 408 int _kObjectAlignment;
405 int _N; 409 int _N;
406 int _E; 410 int _E;
407 int _size; 411 int _size;
408 412
409 // Indexed by node id, with id 0 representing invalid/uninitialized. 413 // Indexed by node id, with id 0 representing invalid/uninitialized.
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 for (var i = N; i > 1; i--) { 816 for (var i = N; i > 1; i--) {
813 var v = vertex[i]; 817 var v = vertex[i];
814 assert(v != 1); 818 assert(v != 1);
815 retainedSizes[doms[i]] += retainedSizes[i]; 819 retainedSizes[doms[i]] += retainedSizes[i];
816 } 820 }
817 821
818 _retainedSizes = retainedSizes; 822 _retainedSizes = retainedSizes;
819 _size = size; 823 _size = size;
820 } 824 }
821 } 825 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/models.dart ('k') | runtime/observatory/lib/repositories.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698