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

Side by Side Diff: runtime/vm/compiler_stats.cc

Issue 2995543004: [vm, gc] Require a safepoint for heap iteration. (Closed)
Patch Set: explicit-thread Created 3 years, 4 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/vm/clustered_snapshot.cc ('k') | runtime/vm/dart_api_impl.cc » ('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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 #include "vm/compiler_stats.h" 5 #include "vm/compiler_stats.h"
6 6
7 #include "vm/flags.h" 7 #include "vm/flags.h"
8 #include "vm/log.h" 8 #include "vm/log.h"
9 #include "vm/object_graph.h" 9 #include "vm/object_graph.h"
10 #include "vm/object_store.h" 10 #include "vm/object_store.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 va_list args; 116 va_list args;
117 va_start(args, format); 117 va_start(args, format);
118 stats->text = zone->VPrint(format, args); 118 stats->text = zone->VPrint(format, args);
119 va_end(args); 119 va_end(args);
120 } 120 }
121 121
122 void CompilerStats::Update() { 122 void CompilerStats::Update() {
123 // Traverse the heap and compute number of tokens in all 123 // Traverse the heap and compute number of tokens in all
124 // TokenStream objects. 124 // TokenStream objects.
125 num_tokens_total = 0; 125 num_tokens_total = 0;
126 TokenStreamVisitor visitor(this); 126
127 isolate_->heap()->IterateObjects(&visitor); 127 {
128 Dart::vm_isolate()->heap()->IterateObjects(&visitor); 128 HeapIterationScope iteration(Thread::Current());
129 TokenStreamVisitor visitor(this);
130 iteration.IterateObjects(&visitor);
131 iteration.IterateVMIsolateObjects(&visitor);
132 }
129 } 133 }
130 134
131 void CompilerStats::EnableBenchmark() { 135 void CompilerStats::EnableBenchmark() {
132 FLAG_compiler_stats = true; 136 FLAG_compiler_stats = true;
133 use_benchmark_output = true; 137 use_benchmark_output = true;
134 } 138 }
135 139
136 // Generate output for Golem benchmark harness. If the output format 140 // Generate output for Golem benchmark harness. If the output format
137 // changes, the parsing function in Golem must be updated. 141 // changes, the parsing function in Golem must be updated.
138 char* CompilerStats::BenchmarkOutput() { 142 char* CompilerStats::BenchmarkOutput() {
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 log.Print(" VarDesc size: %" Pd64 " KB\n", vardesc_size / 1024); 299 log.Print(" VarDesc size: %" Pd64 " KB\n", vardesc_size / 1024);
296 log.Flush(); 300 log.Flush();
297 char* stats_text = text; 301 char* stats_text = text;
298 text = NULL; 302 text = NULL;
299 return stats_text; 303 return stats_text;
300 } 304 }
301 305
302 #endif // !PRODUCT 306 #endif // !PRODUCT
303 307
304 } // namespace dart 308 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/clustered_snapshot.cc ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698