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

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

Issue 1525913002: Observatory: Include profiler samples in the timeline view. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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/profiler.h ('k') | runtime/vm/profiler_service.h » ('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) 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 #include "platform/address_sanitizer.h" 5 #include "platform/address_sanitizer.h"
6 #include "platform/memory_sanitizer.h" 6 #include "platform/memory_sanitizer.h"
7 #include "platform/utils.h" 7 #include "platform/utils.h"
8 8
9 #include "vm/allocation.h" 9 #include "vm/allocation.h"
10 #include "vm/atomic.h" 10 #include "vm/atomic.h"
(...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 ProcessedSampleBuffer* buffer = new(zone) ProcessedSampleBuffer(); 1186 ProcessedSampleBuffer* buffer = new(zone) ProcessedSampleBuffer();
1187 1187
1188 const intptr_t length = capacity(); 1188 const intptr_t length = capacity();
1189 for (intptr_t i = 0; i < length; i++) { 1189 for (intptr_t i = 0; i < length; i++) {
1190 Sample* sample = At(i); 1190 Sample* sample = At(i);
1191 if (sample->ignore_sample()) { 1191 if (sample->ignore_sample()) {
1192 // Bad sample. 1192 // Bad sample.
1193 continue; 1193 continue;
1194 } 1194 }
1195 if (!sample->head_sample()) { 1195 if (!sample->head_sample()) {
1196 // An inner sample in a chain of samples. 1196 // An inner sample in a chain of samples.
1197 continue; 1197 continue;
1198 } 1198 }
1199 if (sample->isolate() != filter->isolate()) { 1199 if (sample->isolate() != filter->isolate()) {
1200 // Another isolate. 1200 // Another isolate.
1201 continue; 1201 continue;
1202 } 1202 }
1203 if (sample->timestamp() == 0) { 1203 if (sample->timestamp() == 0) {
1204 // Empty. 1204 // Empty.
1205 continue; 1205 continue;
1206 } 1206 }
1207 if (sample->At(0) == 0) { 1207 if (sample->At(0) == 0) {
1208 // No frames. 1208 // No frames.
(...skipping 12 matching lines...) Expand all
1221 ProcessedSample* SampleBuffer::BuildProcessedSample( 1221 ProcessedSample* SampleBuffer::BuildProcessedSample(
1222 Sample* sample, 1222 Sample* sample,
1223 const CodeLookupTable& clt) { 1223 const CodeLookupTable& clt) {
1224 Thread* thread = Thread::Current(); 1224 Thread* thread = Thread::Current();
1225 Zone* zone = thread->zone(); 1225 Zone* zone = thread->zone();
1226 1226
1227 ProcessedSample* processed_sample = new(zone) ProcessedSample(); 1227 ProcessedSample* processed_sample = new(zone) ProcessedSample();
1228 1228
1229 // Copy state bits from sample. 1229 // Copy state bits from sample.
1230 processed_sample->set_timestamp(sample->timestamp()); 1230 processed_sample->set_timestamp(sample->timestamp());
1231 processed_sample->set_tid(sample->tid());
1231 processed_sample->set_vm_tag(sample->vm_tag()); 1232 processed_sample->set_vm_tag(sample->vm_tag());
1232 processed_sample->set_user_tag(sample->user_tag()); 1233 processed_sample->set_user_tag(sample->user_tag());
1233 if (sample->is_allocation_sample()) { 1234 if (sample->is_allocation_sample()) {
1234 processed_sample->set_allocation_cid(sample->allocation_cid()); 1235 processed_sample->set_allocation_cid(sample->allocation_cid());
1235 } 1236 }
1236 processed_sample->set_first_frame_executing(!sample->exit_frame_sample()); 1237 processed_sample->set_first_frame_executing(!sample->exit_frame_sample());
1237 1238
1238 // Copy stack trace from sample(s). 1239 // Copy stack trace from sample(s).
1239 bool truncated = false; 1240 bool truncated = false;
1240 Sample* current = sample; 1241 Sample* current = sample;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1280 return next_sample; 1281 return next_sample;
1281 } 1282 }
1282 1283
1283 1284
1284 ProcessedSample::ProcessedSample() 1285 ProcessedSample::ProcessedSample()
1285 : pcs_(kSampleSize), 1286 : pcs_(kSampleSize),
1286 timestamp_(0), 1287 timestamp_(0),
1287 vm_tag_(0), 1288 vm_tag_(0),
1288 user_tag_(0), 1289 user_tag_(0),
1289 allocation_cid_(-1), 1290 allocation_cid_(-1),
1290 truncated_(false) { 1291 truncated_(false),
1292 timeline_trie_(NULL) {
1291 } 1293 }
1292 1294
1293 1295
1294 void ProcessedSample::FixupCaller(const CodeLookupTable& clt, 1296 void ProcessedSample::FixupCaller(const CodeLookupTable& clt,
1295 uword pc_marker, 1297 uword pc_marker,
1296 uword* stack_buffer) { 1298 uword* stack_buffer) {
1297 const CodeDescriptor* cd = clt.FindCode(At(0)); 1299 const CodeDescriptor* cd = clt.FindCode(At(0));
1298 if (cd == NULL) { 1300 if (cd == NULL) {
1299 // No Dart code. 1301 // No Dart code.
1300 return; 1302 return;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1361 } 1363 }
1362 } 1364 }
1363 1365
1364 1366
1365 ProcessedSampleBuffer::ProcessedSampleBuffer() 1367 ProcessedSampleBuffer::ProcessedSampleBuffer()
1366 : code_lookup_table_(new CodeLookupTable(Thread::Current())) { 1368 : code_lookup_table_(new CodeLookupTable(Thread::Current())) {
1367 ASSERT(code_lookup_table_ != NULL); 1369 ASSERT(code_lookup_table_ != NULL);
1368 } 1370 }
1369 1371
1370 } // namespace dart 1372 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/profiler.h ('k') | runtime/vm/profiler_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698