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

Side by Side Diff: runtime/observatory/lib/src/elements/native_memory_profiler.dart

Issue 2920603003: Fix some observatory analysis issues. (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 native_memory_profile; 5 library native_memory_profile;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 import 'package:observatory/models.dart' as M; 9 import 'package:observatory/models.dart' as M;
10 import 'package:observatory/service.dart' as S;
10 import 'package:observatory/src/elements/cpu_profile/virtual_tree.dart'; 11 import 'package:observatory/src/elements/cpu_profile/virtual_tree.dart';
11 import 'package:observatory/src/elements/helpers/nav_bar.dart'; 12 import 'package:observatory/src/elements/helpers/nav_bar.dart';
12 import 'package:observatory/src/elements/helpers/nav_menu.dart'; 13 import 'package:observatory/src/elements/helpers/nav_menu.dart';
13 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; 14 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
14 import 'package:observatory/src/elements/helpers/tag.dart'; 15 import 'package:observatory/src/elements/helpers/tag.dart';
15 import 'package:observatory/src/elements/helpers/uris.dart'; 16 import 'package:observatory/src/elements/helpers/uris.dart';
16 import 'package:observatory/src/elements/nav/notify.dart'; 17 import 'package:observatory/src/elements/nav/notify.dart';
17 import 'package:observatory/src/elements/nav/refresh.dart'; 18 import 'package:observatory/src/elements/nav/refresh.dart';
18 import 'package:observatory/src/elements/nav/top_menu.dart'; 19 import 'package:observatory/src/elements/nav/top_menu.dart';
19 import 'package:observatory/src/elements/nav/vm_menu.dart'; 20 import 'package:observatory/src/elements/nav/vm_menu.dart';
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 }), 137 }),
137 new BRElement(), 138 new BRElement(),
138 tree = new CpuProfileVirtualTreeElement(_vm, _progress.profile, 139 tree = new CpuProfileVirtualTreeElement(_vm, _progress.profile,
139 queue: _r.queue, type: M.SampleProfileType.memory) 140 queue: _r.queue, type: M.SampleProfileType.memory)
140 ]); 141 ]);
141 } 142 }
142 children = content; 143 children = content;
143 } 144 }
144 145
145 Future _request({bool forceFetch: false}) async { 146 Future _request({bool forceFetch: false}) async {
146 for (Isolate isolate in vm.isolates) { 147 // TODO: Is this casting correct?
rmacnak 2017/06/01 19:30:46 This casting will work in practice in Observatory,
devoncarew 2017/06/01 20:11:54 The issue here was more around the isolates getter
147 await isolate.invokeRpc("_collectAllGarbage", {}); 148 for (M.Isolate isolate in (vm as M.VM).isolates) {
149 await (isolate as S.Isolate).invokeRpc("_collectAllGarbage", {});
siva 2017/06/01 19:26:32 Not sure about this cast, according to Ryan the ri
devoncarew 2017/06/01 20:11:54 The issue reported here was that M.IsolateRef does
148 } 150 }
149 _progress = null; 151 _progress = null;
150 _progressStream = _profiles.get(_vm, _tag, forceFetch: forceFetch); 152 _progressStream = _profiles.get(_vm, _tag, forceFetch: forceFetch);
151 _r.dirty(); 153 _r.dirty();
152 _progress = (await _progressStream.first).progress; 154 _progress = (await _progressStream.first).progress;
153 _r.dirty(); 155 _r.dirty();
154 if (M.isSampleProcessRunning(_progress.status)) { 156 if (M.isSampleProcessRunning(_progress.status)) {
155 _progress = (await _progressStream.last).progress; 157 _progress = (await _progressStream.last).progress;
156 _r.dirty(); 158 _r.dirty();
157 } 159 }
158 } 160 }
159 161
160 Future _refresh(e) async { 162 Future _refresh(e) async {
161 e.element.disabled = true; 163 e.element.disabled = true;
162 await _request(forceFetch: true); 164 await _request(forceFetch: true);
163 e.element.disabled = false; 165 e.element.disabled = false;
164 } 166 }
165 } 167 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698