| Index: runtime/vm/profiler_service.h | 
| diff --git a/runtime/vm/profiler_service.h b/runtime/vm/profiler_service.h | 
| index d9205b3b7a1ee851107a8f1778c3f4e0d1de36b1..8045906e14442710f4cfed8e2663d27a4d32f1a6 100644 | 
| --- a/runtime/vm/profiler_service.h | 
| +++ b/runtime/vm/profiler_service.h | 
| @@ -29,6 +29,7 @@ class ProfileCodeTable; | 
| class RawCode; | 
| class RawFunction; | 
| class SampleFilter; | 
| +class ProcessedSample; | 
| class ProcessedSampleBuffer; | 
|  | 
| class ProfileFunctionSourcePosition { | 
| @@ -257,7 +258,18 @@ class ProfileTrieNode : public ZoneAllocated { | 
|  | 
| intptr_t count() const { return count_; } | 
|  | 
| -  void Tick() { count_++; } | 
| +  void Tick(ProcessedSample* sample, bool exclusive = false); | 
| + | 
| +  void IncrementAllocation(intptr_t allocation, bool exclusive) { | 
| +    ASSERT(allocation >= 0); | 
| +    if (exclusive) { | 
| +      exclusive_allocations_ += allocation; | 
| +    } | 
| +    inclusive_allocations_ += allocation; | 
| +  } | 
| + | 
| +  intptr_t inclusive_allocations() const { return inclusive_allocations_; } | 
| +  intptr_t exclusive_allocations() const { return exclusive_allocations_; } | 
|  | 
| intptr_t NumChildren() const { return children_.length(); } | 
|  | 
| @@ -284,6 +296,8 @@ class ProfileTrieNode : public ZoneAllocated { | 
|  | 
| intptr_t table_index_; | 
| intptr_t count_; | 
| +  intptr_t exclusive_allocations_; | 
| +  intptr_t inclusive_allocations_; | 
| ZoneGrowableArray<ProfileTrieNode*> children_; | 
| intptr_t frame_id_; | 
|  | 
| @@ -378,6 +392,10 @@ class ProfileTrieWalker : public ValueObject { | 
| intptr_t CurrentInclusiveTicks(); | 
| // Return the current node's peer's exclusive tick count. | 
| intptr_t CurrentExclusiveTicks(); | 
| +  // Return the current node's inclusive allocation count. | 
| +  intptr_t CurrentInclusiveAllocations(); | 
| +  // Return the current node's exclusive allocation count. | 
| +  intptr_t CurrentExclusiveAllocations(); | 
| // Return the current node's tick count. | 
| intptr_t CurrentNodeTickCount(); | 
| // Return the number siblings (including yourself). | 
|  |