| OLD | NEW |
| 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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 unsigned GetUid() const; | 128 unsigned GetUid() const; |
| 129 | 129 |
| 130 /** Returns CPU profile title. */ | 130 /** Returns CPU profile title. */ |
| 131 Handle<String> GetTitle() const; | 131 Handle<String> GetTitle() const; |
| 132 | 132 |
| 133 /** Returns the root node of the top down call tree. */ | 133 /** Returns the root node of the top down call tree. */ |
| 134 const CpuProfileNode* GetTopDownRoot() const; | 134 const CpuProfileNode* GetTopDownRoot() const; |
| 135 | 135 |
| 136 /** | 136 /** |
| 137 * Returns number of samples recorded. The samples are not recorded unless | 137 * Returns number of samples recorded. The samples are not recorded unless |
| 138 * |record_samples| parameter of CpuProfiler::StartProfiling is true. | 138 * |record_samples| parameter of CpuProfiler::StartCpuProfiling is true. |
| 139 */ | 139 */ |
| 140 int GetSamplesCount() const; | 140 int GetSamplesCount() const; |
| 141 | 141 |
| 142 /** | 142 /** |
| 143 * Returns profile node corresponding to the top frame the sample at | 143 * Returns profile node corresponding to the top frame the sample at |
| 144 * the given index. | 144 * the given index. |
| 145 */ | 145 */ |
| 146 const CpuProfileNode* GetSample(int index) const; | 146 const CpuProfileNode* GetSample(int index) const; |
| 147 | 147 |
| 148 /** | 148 /** |
| 149 * Deletes the profile and removes it from CpuProfiler's list. | 149 * Deletes the profile and removes it from CpuProfiler's list. |
| 150 * All pointers to nodes previously returned become invalid. | 150 * All pointers to nodes previously returned become invalid. |
| 151 * Profiles with the same uid but obtained using different | 151 * Profiles with the same uid but obtained using different |
| 152 * security token are not deleted, but become inaccessible | 152 * security token are not deleted, but become inaccessible |
| 153 * using FindProfile method. It is embedder's responsibility | 153 * using FindProfile method. It is embedder's responsibility |
| 154 * to call Delete on these profiles. | 154 * to call Delete on these profiles. |
| 155 */ | 155 */ |
| 156 void Delete(); | 156 void Delete(); |
| 157 }; | 157 }; |
| 158 | 158 |
| 159 | 159 |
| 160 /** | 160 /** |
| 161 * Interface for controlling CPU profiling. | 161 * Interface for controlling CPU profiling. Instance of the |
| 162 * profiler can be retrieved using v8::Isolate::GetCpuProfiler. |
| 162 */ | 163 */ |
| 163 class V8EXPORT CpuProfiler { | 164 class V8EXPORT CpuProfiler { |
| 164 public: | 165 public: |
| 165 /** | 166 /** |
| 166 * A note on security tokens usage. As scripts from different | 167 * A note on security tokens usage. As scripts from different |
| 167 * origins can run inside a single V8 instance, it is possible to | 168 * origins can run inside a single V8 instance, it is possible to |
| 168 * have functions from different security contexts intermixed in a | 169 * have functions from different security contexts intermixed in a |
| 169 * single CPU profile. To avoid exposing function names belonging to | 170 * single CPU profile. To avoid exposing function names belonging to |
| 170 * other contexts, filtering by security token is performed while | 171 * other contexts, filtering by security token is performed while |
| 171 * obtaining profiling results. | 172 * obtaining profiling results. |
| 172 */ | 173 */ |
| 173 | 174 |
| 175 /** Deprecated. Use GetProfileCount instead. */ |
| 176 static int GetProfilesCount(); |
| 174 /** | 177 /** |
| 175 * Returns the number of profiles collected (doesn't include | 178 * Returns the number of profiles collected (doesn't include |
| 176 * profiles that are being collected at the moment of call.) | 179 * profiles that are being collected at the moment of call.) |
| 177 */ | 180 */ |
| 178 static int GetProfilesCount(); | 181 int GetProfileCount(); |
| 179 | 182 |
| 180 /** Returns a profile by index. */ | 183 /** Deprecated. Use GetCpuProfile instead. */ |
| 181 static const CpuProfile* GetProfile( | 184 static const CpuProfile* GetProfile( |
| 182 int index, | 185 int index, |
| 183 Handle<Value> security_token = Handle<Value>()); | 186 Handle<Value> security_token = Handle<Value>()); |
| 187 /** Returns a profile by index. */ |
| 188 const CpuProfile* GetCpuProfile( |
| 189 int index, |
| 190 Handle<Value> security_token = Handle<Value>()); |
| 184 | 191 |
| 185 /** Returns a profile by uid. */ | 192 /** Deprecated. Use FindProfile instead. */ |
| 186 static const CpuProfile* FindProfile( | 193 static const CpuProfile* FindProfile( |
| 187 unsigned uid, | 194 unsigned uid, |
| 188 Handle<Value> security_token = Handle<Value>()); | 195 Handle<Value> security_token = Handle<Value>()); |
| 196 /** Returns a profile by uid. */ |
| 197 const CpuProfile* FindCpuProfile( |
| 198 unsigned uid, |
| 199 Handle<Value> security_token = Handle<Value>()); |
| 189 | 200 |
| 201 /** Deprecated. Use StartCpuProfiling instead. */ |
| 202 static void StartProfiling(Handle<String> title, bool record_samples = false); |
| 190 /** | 203 /** |
| 191 * Starts collecting CPU profile. Title may be an empty string. It | 204 * Starts collecting CPU profile. Title may be an empty string. It |
| 192 * is allowed to have several profiles being collected at | 205 * is allowed to have several profiles being collected at |
| 193 * once. Attempts to start collecting several profiles with the same | 206 * once. Attempts to start collecting several profiles with the same |
| 194 * title are silently ignored. While collecting a profile, functions | 207 * title are silently ignored. While collecting a profile, functions |
| 195 * from all security contexts are included in it. The token-based | 208 * from all security contexts are included in it. The token-based |
| 196 * filtering is only performed when querying for a profile. | 209 * filtering is only performed when querying for a profile. |
| 197 * | 210 * |
| 198 * |record_samples| parameter controls whether individual samples should | 211 * |record_samples| parameter controls whether individual samples should |
| 199 * be recorded in addition to the aggregated tree. | 212 * be recorded in addition to the aggregated tree. |
| 200 */ | 213 */ |
| 201 static void StartProfiling(Handle<String> title, bool record_samples = false); | 214 void StartCpuProfiling(Handle<String> title, bool record_samples = false); |
| 202 | 215 |
| 216 /** Deprecated. Use StopCpuProfiling instead. */ |
| 217 static const CpuProfile* StopProfiling( |
| 218 Handle<String> title, |
| 219 Handle<Value> security_token = Handle<Value>()); |
| 203 /** | 220 /** |
| 204 * Stops collecting CPU profile with a given title and returns it. | 221 * Stops collecting CPU profile with a given title and returns it. |
| 205 * If the title given is empty, finishes the last profile started. | 222 * If the title given is empty, finishes the last profile started. |
| 206 */ | 223 */ |
| 207 static const CpuProfile* StopProfiling( | 224 const CpuProfile* StopCpuProfiling( |
| 208 Handle<String> title, | 225 Handle<String> title, |
| 209 Handle<Value> security_token = Handle<Value>()); | 226 Handle<Value> security_token = Handle<Value>()); |
| 210 | 227 |
| 228 /** Deprecated. Use DeleteAllCpuProfiles instead. */ |
| 229 static void DeleteAllProfiles(); |
| 211 /** | 230 /** |
| 212 * Deletes all existing profiles, also cancelling all profiling | 231 * Deletes all existing profiles, also cancelling all profiling |
| 213 * activity. All previously returned pointers to profiles and their | 232 * activity. All previously returned pointers to profiles and their |
| 214 * contents become invalid after this call. | 233 * contents become invalid after this call. |
| 215 */ | 234 */ |
| 216 static void DeleteAllProfiles(); | 235 void DeleteAllCpuProfiles(); |
| 236 |
| 237 private: |
| 238 CpuProfiler(); |
| 239 ~CpuProfiler(); |
| 240 CpuProfiler(const CpuProfiler&); |
| 241 CpuProfiler& operator=(const CpuProfiler&); |
| 217 }; | 242 }; |
| 218 | 243 |
| 219 | 244 |
| 220 class HeapGraphNode; | 245 class HeapGraphNode; |
| 221 | 246 |
| 222 | 247 |
| 223 /** | 248 /** |
| 224 * HeapSnapshotEdge represents a directed connection between heap | 249 * HeapSnapshotEdge represents a directed connection between heap |
| 225 * graph nodes: from retainers to retained nodes. | 250 * graph nodes: from retainers to retained nodes. |
| 226 */ | 251 */ |
| (...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 }; | 647 }; |
| 623 | 648 |
| 624 | 649 |
| 625 } // namespace v8 | 650 } // namespace v8 |
| 626 | 651 |
| 627 | 652 |
| 628 #undef V8EXPORT | 653 #undef V8EXPORT |
| 629 | 654 |
| 630 | 655 |
| 631 #endif // V8_V8_PROFILER_H_ | 656 #endif // V8_V8_PROFILER_H_ |
| OLD | NEW |