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

Side by Side Diff: runtime/vm/profiler_service.h

Issue 2773073003: Revert "Added page to Observatory to display native memory allocation information." (Closed)
Patch Set: Created 3 years, 8 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/profiler.cc ('k') | runtime/vm/profiler_service.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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 #ifndef RUNTIME_VM_PROFILER_SERVICE_H_ 5 #ifndef RUNTIME_VM_PROFILER_SERVICE_H_
6 #define RUNTIME_VM_PROFILER_SERVICE_H_ 6 #define RUNTIME_VM_PROFILER_SERVICE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/code_observers.h" 9 #include "vm/code_observers.h"
10 #include "vm/globals.h" 10 #include "vm/globals.h"
(...skipping 11 matching lines...) Expand all
22 // Forward declarations. 22 // Forward declarations.
23 class Code; 23 class Code;
24 class Function; 24 class Function;
25 class JSONArray; 25 class JSONArray;
26 class JSONStream; 26 class JSONStream;
27 class ProfileFunctionTable; 27 class ProfileFunctionTable;
28 class ProfileCodeTable; 28 class ProfileCodeTable;
29 class RawCode; 29 class RawCode;
30 class RawFunction; 30 class RawFunction;
31 class SampleFilter; 31 class SampleFilter;
32 class ProcessedSample;
33 class ProcessedSampleBuffer; 32 class ProcessedSampleBuffer;
34 33
35 class ProfileFunctionSourcePosition { 34 class ProfileFunctionSourcePosition {
36 public: 35 public:
37 explicit ProfileFunctionSourcePosition(TokenPosition token_pos); 36 explicit ProfileFunctionSourcePosition(TokenPosition token_pos);
38 37
39 void Tick(bool exclusive); 38 void Tick(bool exclusive);
40 39
41 TokenPosition token_pos() const { return token_pos_; } 40 TokenPosition token_pos() const { return token_pos_; }
42 intptr_t exclusive_ticks() const { return exclusive_ticks_; } 41 intptr_t exclusive_ticks() const { return exclusive_ticks_; }
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 explicit ProfileTrieNode(intptr_t index); 250 explicit ProfileTrieNode(intptr_t index);
252 virtual ~ProfileTrieNode(); 251 virtual ~ProfileTrieNode();
253 252
254 virtual void PrintToJSONArray(JSONArray* array) const = 0; 253 virtual void PrintToJSONArray(JSONArray* array) const = 0;
255 254
256 // Index into function or code tables. 255 // Index into function or code tables.
257 intptr_t table_index() const { return table_index_; } 256 intptr_t table_index() const { return table_index_; }
258 257
259 intptr_t count() const { return count_; } 258 intptr_t count() const { return count_; }
260 259
261 void Tick(ProcessedSample* sample, bool exclusive = false); 260 void Tick() { count_++; }
262
263 void IncrementAllocation(intptr_t allocation, bool exclusive) {
264 ASSERT(allocation >= 0);
265 if (exclusive) {
266 exclusive_allocations_ += allocation;
267 }
268 inclusive_allocations_ += allocation;
269 }
270
271 intptr_t inclusive_allocations() const { return inclusive_allocations_; }
272 intptr_t exclusive_allocations() const { return exclusive_allocations_; }
273 261
274 intptr_t NumChildren() const { return children_.length(); } 262 intptr_t NumChildren() const { return children_.length(); }
275 263
276 ProfileTrieNode* At(intptr_t i) { return children_.At(i); } 264 ProfileTrieNode* At(intptr_t i) { return children_.At(i); }
277 265
278 intptr_t IndexOf(ProfileTrieNode* node); 266 intptr_t IndexOf(ProfileTrieNode* node);
279 267
280 intptr_t frame_id() const { return frame_id_; } 268 intptr_t frame_id() const { return frame_id_; }
281 void set_frame_id(intptr_t id) { 269 void set_frame_id(intptr_t id) {
282 ASSERT(frame_id_ == -1); 270 ASSERT(frame_id_ == -1);
283 frame_id_ = id; 271 frame_id_ = id;
284 } 272 }
285 273
286 protected: 274 protected:
287 void SortChildren(); 275 void SortChildren();
288 276
289 static int ProfileTrieNodeCompare(ProfileTrieNode* const* a, 277 static int ProfileTrieNodeCompare(ProfileTrieNode* const* a,
290 ProfileTrieNode* const* b) { 278 ProfileTrieNode* const* b) {
291 ASSERT(a != NULL); 279 ASSERT(a != NULL);
292 ASSERT(b != NULL); 280 ASSERT(b != NULL);
293 return (*b)->count() - (*a)->count(); 281 return (*b)->count() - (*a)->count();
294 } 282 }
295 283
296 284
297 intptr_t table_index_; 285 intptr_t table_index_;
298 intptr_t count_; 286 intptr_t count_;
299 intptr_t exclusive_allocations_;
300 intptr_t inclusive_allocations_;
301 ZoneGrowableArray<ProfileTrieNode*> children_; 287 ZoneGrowableArray<ProfileTrieNode*> children_;
302 intptr_t frame_id_; 288 intptr_t frame_id_;
303 289
304 friend class ProfileBuilder; 290 friend class ProfileBuilder;
305 }; 291 };
306 292
307 293
308 // The model for a profile. Most of the model is zone allocated, therefore 294 // The model for a profile. Most of the model is zone allocated, therefore
309 // a zone must be created that lives longer than this object. 295 // a zone must be created that lives longer than this object.
310 class Profile : public ValueObject { 296 class Profile : public ValueObject {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 ASSERT(profile_ != NULL); 371 ASSERT(profile_ != NULL);
386 } 372 }
387 373
388 void Reset(Profile::TrieKind trie_kind); 374 void Reset(Profile::TrieKind trie_kind);
389 375
390 const char* CurrentName(); 376 const char* CurrentName();
391 // Return the current node's peer's inclusive tick count. 377 // Return the current node's peer's inclusive tick count.
392 intptr_t CurrentInclusiveTicks(); 378 intptr_t CurrentInclusiveTicks();
393 // Return the current node's peer's exclusive tick count. 379 // Return the current node's peer's exclusive tick count.
394 intptr_t CurrentExclusiveTicks(); 380 intptr_t CurrentExclusiveTicks();
395 // Return the current node's inclusive allocation count.
396 intptr_t CurrentInclusiveAllocations();
397 // Return the current node's exclusive allocation count.
398 intptr_t CurrentExclusiveAllocations();
399 // Return the current node's tick count. 381 // Return the current node's tick count.
400 intptr_t CurrentNodeTickCount(); 382 intptr_t CurrentNodeTickCount();
401 // Return the number siblings (including yourself). 383 // Return the number siblings (including yourself).
402 intptr_t SiblingCount(); 384 intptr_t SiblingCount();
403 385
404 // If the following conditions are met returns the current token: 386 // If the following conditions are met returns the current token:
405 // 1) This is a function trie. 387 // 1) This is a function trie.
406 // 2) There is only one token position for a given function. 388 // 2) There is only one token position for a given function.
407 // Will return NULL otherwise. 389 // Will return NULL otherwise.
408 const char* CurrentToken(); 390 const char* CurrentToken();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 JSONStream* stream, 436 JSONStream* stream,
455 Profile::TagOrder tag_order, 437 Profile::TagOrder tag_order,
456 intptr_t extra_tags, 438 intptr_t extra_tags,
457 SampleFilter* filter, 439 SampleFilter* filter,
458 bool as_timline); 440 bool as_timline);
459 }; 441 };
460 442
461 } // namespace dart 443 } // namespace dart
462 444
463 #endif // RUNTIME_VM_PROFILER_SERVICE_H_ 445 #endif // RUNTIME_VM_PROFILER_SERVICE_H_
OLDNEW
« no previous file with comments | « runtime/vm/profiler.cc ('k') | runtime/vm/profiler_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698