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

Side by Side Diff: src/profile-generator-inl.h

Issue 7864017: Eliminate the need for code delete events in CPU profiler. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fixed test-log/EquivalenceOfLoggingAndTraversal Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry) 72 ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry)
73 : tree_(tree), 73 : tree_(tree),
74 entry_(entry), 74 entry_(entry),
75 total_ticks_(0), 75 total_ticks_(0),
76 self_ticks_(0), 76 self_ticks_(0),
77 children_(CodeEntriesMatch) { 77 children_(CodeEntriesMatch) {
78 } 78 }
79 79
80 80
81 void CodeMap::AddCode(Address addr, CodeEntry* entry, unsigned size) {
82 CodeTree::Locator locator;
83 tree_.Insert(addr, &locator);
84 locator.set_value(CodeEntryInfo(entry, size));
85 }
86
87
88 void CodeMap::MoveCode(Address from, Address to) {
89 tree_.Move(from, to);
90 }
91
92 void CodeMap::DeleteCode(Address addr) {
93 tree_.Remove(addr);
94 }
95
96
97 CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) { 81 CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) {
98 switch (tag) { 82 switch (tag) {
99 case GC: 83 case GC:
100 return gc_entry_; 84 return gc_entry_;
101 case JS: 85 case JS:
102 case COMPILER: 86 case COMPILER:
103 // DOM events handlers are reported as OTHER / EXTERNAL entries. 87 // DOM events handlers are reported as OTHER / EXTERNAL entries.
104 // To avoid confusing people, let's put all these entries into 88 // To avoid confusing people, let's put all these entries into
105 // one bucket. 89 // one bucket.
106 case OTHER: 90 case OTHER:
107 case EXTERNAL: 91 case EXTERNAL:
108 return program_entry_; 92 return program_entry_;
109 default: return NULL; 93 default: return NULL;
110 } 94 }
111 } 95 }
112 96
113 97
114 uint64_t HeapEntry::id() { 98 uint64_t HeapEntry::id() {
115 union { 99 union {
116 Id stored_id; 100 Id stored_id;
117 uint64_t returned_id; 101 uint64_t returned_id;
118 } id_adaptor = {id_}; 102 } id_adaptor = {id_};
119 return id_adaptor.returned_id; 103 return id_adaptor.returned_id;
120 } 104 }
121 105
122 } } // namespace v8::internal 106 } } // namespace v8::internal
123 107
124 #endif // V8_PROFILE_GENERATOR_INL_H_ 108 #endif // V8_PROFILE_GENERATOR_INL_H_
OLDNEW
« src/log.cc ('K') | « src/profile-generator.cc ('k') | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698