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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 | 98 |
99 /** Returns the count of samples where function exists. */ | 99 /** Returns the count of samples where function exists. */ |
100 double GetTotalSamplesCount() const; | 100 double GetTotalSamplesCount() const; |
101 | 101 |
102 /** Returns the count of samples where function was currently executing. */ | 102 /** Returns the count of samples where function was currently executing. */ |
103 double GetSelfSamplesCount() const; | 103 double GetSelfSamplesCount() const; |
104 | 104 |
105 /** Returns function entry UID. */ | 105 /** Returns function entry UID. */ |
106 unsigned GetCallUid() const; | 106 unsigned GetCallUid() const; |
107 | 107 |
108 /** Returns id of the node. The id is unique within the tree */ | |
109 unsigned GetNodeId() const; | |
110 | |
111 /** Returns child nodes count of the node. */ | 108 /** Returns child nodes count of the node. */ |
112 int GetChildrenCount() const; | 109 int GetChildrenCount() const; |
113 | 110 |
114 /** Retrieves a child node by index. */ | 111 /** Retrieves a child node by index. */ |
115 const CpuProfileNode* GetChild(int index) const; | 112 const CpuProfileNode* GetChild(int index) const; |
116 | 113 |
117 static const int kNoLineNumberInfo = Message::kNoLineNumberInfo; | 114 static const int kNoLineNumberInfo = Message::kNoLineNumberInfo; |
118 }; | 115 }; |
119 | 116 |
120 | 117 |
121 /** | 118 /** |
122 * CpuProfile contains a CPU profile in a form of top-down call tree | 119 * CpuProfile contains a CPU profile in a form of top-down call tree |
123 * (from main() down to functions that do all the work). | 120 * (from main() down to functions that do all the work). |
124 */ | 121 */ |
125 class V8EXPORT CpuProfile { | 122 class V8EXPORT CpuProfile { |
126 public: | 123 public: |
127 /** Returns CPU profile UID (assigned by the profiler.) */ | 124 /** Returns CPU profile UID (assigned by the profiler.) */ |
128 unsigned GetUid() const; | 125 unsigned GetUid() const; |
129 | 126 |
130 /** Returns CPU profile title. */ | 127 /** Returns CPU profile title. */ |
131 Handle<String> GetTitle() const; | 128 Handle<String> GetTitle() const; |
132 | 129 |
133 /** Returns the root node of the top down call tree. */ | 130 /** Returns the root node of the top down call tree. */ |
134 const CpuProfileNode* GetTopDownRoot() const; | 131 const CpuProfileNode* GetTopDownRoot() const; |
135 | 132 |
136 /** | 133 /** |
137 * Returns number of samples recorded. The samples are not recorded unless | |
138 * |record_samples| parameter of CpuProfiler::StartCpuProfiling is true. | |
139 */ | |
140 int GetSamplesCount() const; | |
141 | |
142 /** | |
143 * Returns profile node corresponding to the top frame the sample at | |
144 * the given index. | |
145 */ | |
146 const CpuProfileNode* GetSample(int index) const; | |
147 | |
148 /** | |
149 * Deletes the profile and removes it from CpuProfiler's list. | 134 * Deletes the profile and removes it from CpuProfiler's list. |
150 * All pointers to nodes previously returned become invalid. | 135 * All pointers to nodes previously returned become invalid. |
151 * Profiles with the same uid but obtained using different | 136 * Profiles with the same uid but obtained using different |
152 * security token are not deleted, but become inaccessible | 137 * security token are not deleted, but become inaccessible |
153 * using FindProfile method. It is embedder's responsibility | 138 * using FindProfile method. It is embedder's responsibility |
154 * to call Delete on these profiles. | 139 * to call Delete on these profiles. |
155 */ | 140 */ |
156 void Delete(); | 141 void Delete(); |
157 }; | 142 }; |
158 | 143 |
159 | 144 |
160 /** | 145 /** |
161 * Interface for controlling CPU profiling. Instance of the | 146 * Interface for controlling CPU profiling. |
162 * profiler can be retrieved using v8::Isolate::GetCpuProfiler. | |
163 */ | 147 */ |
164 class V8EXPORT CpuProfiler { | 148 class V8EXPORT CpuProfiler { |
165 public: | 149 public: |
166 /** | 150 /** |
167 * A note on security tokens usage. As scripts from different | 151 * A note on security tokens usage. As scripts from different |
168 * origins can run inside a single V8 instance, it is possible to | 152 * origins can run inside a single V8 instance, it is possible to |
169 * have functions from different security contexts intermixed in a | 153 * have functions from different security contexts intermixed in a |
170 * single CPU profile. To avoid exposing function names belonging to | 154 * single CPU profile. To avoid exposing function names belonging to |
171 * other contexts, filtering by security token is performed while | 155 * other contexts, filtering by security token is performed while |
172 * obtaining profiling results. | 156 * obtaining profiling results. |
173 */ | 157 */ |
174 | 158 |
175 /** Deprecated. Use GetProfileCount instead. */ | |
176 static int GetProfilesCount(); | |
177 /** | 159 /** |
178 * Returns the number of profiles collected (doesn't include | 160 * Returns the number of profiles collected (doesn't include |
179 * profiles that are being collected at the moment of call.) | 161 * profiles that are being collected at the moment of call.) |
180 */ | 162 */ |
181 int GetProfileCount(); | 163 static int GetProfilesCount(); |
182 | 164 |
183 /** Deprecated. Use GetCpuProfile instead. */ | 165 /** Returns a profile by index. */ |
184 static const CpuProfile* GetProfile( | 166 static const CpuProfile* GetProfile( |
185 int index, | 167 int index, |
186 Handle<Value> security_token = Handle<Value>()); | 168 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>()); | |
191 | 169 |
192 /** Deprecated. Use FindProfile instead. */ | 170 /** Returns a profile by uid. */ |
193 static const CpuProfile* FindProfile( | 171 static const CpuProfile* FindProfile( |
194 unsigned uid, | 172 unsigned uid, |
195 Handle<Value> security_token = Handle<Value>()); | 173 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>()); | |
200 | 174 |
201 /** Deprecated. Use StartCpuProfiling instead. */ | |
202 static void StartProfiling(Handle<String> title, bool record_samples = false); | |
203 /** | 175 /** |
204 * Starts collecting CPU profile. Title may be an empty string. It | 176 * Starts collecting CPU profile. Title may be an empty string. It |
205 * is allowed to have several profiles being collected at | 177 * is allowed to have several profiles being collected at |
206 * once. Attempts to start collecting several profiles with the same | 178 * once. Attempts to start collecting several profiles with the same |
207 * title are silently ignored. While collecting a profile, functions | 179 * title are silently ignored. While collecting a profile, functions |
208 * from all security contexts are included in it. The token-based | 180 * from all security contexts are included in it. The token-based |
209 * filtering is only performed when querying for a profile. | 181 * filtering is only performed when querying for a profile. |
210 * | |
211 * |record_samples| parameter controls whether individual samples should | |
212 * be recorded in addition to the aggregated tree. | |
213 */ | 182 */ |
214 void StartCpuProfiling(Handle<String> title, bool record_samples = false); | 183 static void StartProfiling(Handle<String> title); |
215 | 184 |
216 /** Deprecated. Use StopCpuProfiling instead. */ | |
217 static const CpuProfile* StopProfiling( | |
218 Handle<String> title, | |
219 Handle<Value> security_token = Handle<Value>()); | |
220 /** | 185 /** |
221 * Stops collecting CPU profile with a given title and returns it. | 186 * Stops collecting CPU profile with a given title and returns it. |
222 * If the title given is empty, finishes the last profile started. | 187 * If the title given is empty, finishes the last profile started. |
223 */ | 188 */ |
224 const CpuProfile* StopCpuProfiling( | 189 static const CpuProfile* StopProfiling( |
225 Handle<String> title, | 190 Handle<String> title, |
226 Handle<Value> security_token = Handle<Value>()); | 191 Handle<Value> security_token = Handle<Value>()); |
227 | 192 |
228 /** Deprecated. Use DeleteAllCpuProfiles instead. */ | |
229 static void DeleteAllProfiles(); | |
230 /** | 193 /** |
231 * Deletes all existing profiles, also cancelling all profiling | 194 * Deletes all existing profiles, also cancelling all profiling |
232 * activity. All previously returned pointers to profiles and their | 195 * activity. All previously returned pointers to profiles and their |
233 * contents become invalid after this call. | 196 * contents become invalid after this call. |
234 */ | 197 */ |
235 void DeleteAllCpuProfiles(); | 198 static void DeleteAllProfiles(); |
236 | |
237 private: | |
238 CpuProfiler(); | |
239 ~CpuProfiler(); | |
240 CpuProfiler(const CpuProfiler&); | |
241 CpuProfiler& operator=(const CpuProfiler&); | |
242 }; | 199 }; |
243 | 200 |
244 | 201 |
245 class HeapGraphNode; | 202 class HeapGraphNode; |
246 | 203 |
247 | 204 |
248 /** | 205 /** |
249 * HeapSnapshotEdge represents a directed connection between heap | 206 * HeapSnapshotEdge represents a directed connection between heap |
250 * graph nodes: from retainers to retained nodes. | 207 * graph nodes: from retainers to retained nodes. |
251 */ | 208 */ |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 */ | 296 */ |
340 class V8EXPORT HeapSnapshot { | 297 class V8EXPORT HeapSnapshot { |
341 public: | 298 public: |
342 enum Type { | 299 enum Type { |
343 kFull = 0 // Heap snapshot with all instances and references. | 300 kFull = 0 // Heap snapshot with all instances and references. |
344 }; | 301 }; |
345 enum SerializationFormat { | 302 enum SerializationFormat { |
346 kJSON = 0 // See format description near 'Serialize' method. | 303 kJSON = 0 // See format description near 'Serialize' method. |
347 }; | 304 }; |
348 | 305 |
349 /** Deprecated. Returns kFull. */ | 306 /** Returns heap snapshot type. */ |
350 V8_DEPRECATED(Type GetType() const); | 307 Type GetType() const; |
351 | 308 |
352 /** Returns heap snapshot UID (assigned by the profiler.) */ | 309 /** Returns heap snapshot UID (assigned by the profiler.) */ |
353 unsigned GetUid() const; | 310 unsigned GetUid() const; |
354 | 311 |
355 /** Returns heap snapshot title. */ | 312 /** Returns heap snapshot title. */ |
356 Handle<String> GetTitle() const; | 313 Handle<String> GetTitle() const; |
357 | 314 |
358 /** Returns the root node of the heap graph. */ | 315 /** Returns the root node of the heap graph. */ |
359 const HeapGraphNode* GetRoot() const; | 316 const HeapGraphNode* GetRoot() const; |
360 | 317 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 * Nodes reference strings, other nodes, and edges by their indexes | 360 * Nodes reference strings, other nodes, and edges by their indexes |
404 * in corresponding arrays. | 361 * in corresponding arrays. |
405 */ | 362 */ |
406 void Serialize(OutputStream* stream, SerializationFormat format) const; | 363 void Serialize(OutputStream* stream, SerializationFormat format) const; |
407 }; | 364 }; |
408 | 365 |
409 | 366 |
410 class RetainedObjectInfo; | 367 class RetainedObjectInfo; |
411 | 368 |
412 /** | 369 /** |
413 * Interface for controlling heap profiling. Instance of the | 370 * Interface for controlling heap profiling. |
414 * profiler can be retrieved using v8::Isolate::GetHeapProfiler. | |
415 */ | 371 */ |
416 class V8EXPORT HeapProfiler { | 372 class V8EXPORT HeapProfiler { |
417 public: | 373 public: |
418 /** | 374 /** |
419 * Callback function invoked for obtaining RetainedObjectInfo for | 375 * Callback function invoked for obtaining RetainedObjectInfo for |
420 * the given JavaScript wrapper object. It is prohibited to enter V8 | 376 * the given JavaScript wrapper object. It is prohibited to enter V8 |
421 * while the callback is running: only getters on the handle and | 377 * while the callback is running: only getters on the handle and |
422 * GetPointerFromInternalField on the objects are allowed. | 378 * GetPointerFromInternalField on the objects are allowed. |
423 */ | 379 */ |
424 typedef RetainedObjectInfo* (*WrapperInfoCallback) | 380 typedef RetainedObjectInfo* (*WrapperInfoCallback) |
425 (uint16_t class_id, Handle<Value> wrapper); | 381 (uint16_t class_id, Handle<Value> wrapper); |
426 | 382 |
427 /** Deprecated. Use GetSnapshotCount instead. */ | 383 /** Returns the number of snapshots taken. */ |
428 static int GetSnapshotsCount(); | 384 static int GetSnapshotsCount(); |
429 /** Returns the number of snapshots taken. */ | |
430 int GetSnapshotCount(); | |
431 | 385 |
432 /** Deprecated. Use GetHeapSnapshot instead. */ | 386 /** Returns a snapshot by index. */ |
433 static const HeapSnapshot* GetSnapshot(int index); | 387 static const HeapSnapshot* GetSnapshot(int index); |
434 /** Returns a snapshot by index. */ | |
435 const HeapSnapshot* GetHeapSnapshot(int index); | |
436 | 388 |
437 /** Deprecated. Use FindHeapSnapshot instead. */ | 389 /** Returns a profile by uid. */ |
438 static const HeapSnapshot* FindSnapshot(unsigned uid); | 390 static const HeapSnapshot* FindSnapshot(unsigned uid); |
439 /** Returns a profile by uid. */ | |
440 const HeapSnapshot* FindHeapSnapshot(unsigned uid); | |
441 | 391 |
442 /** Deprecated. Use GetObjectId instead. */ | |
443 static SnapshotObjectId GetSnapshotObjectId(Handle<Value> value); | |
444 /** | 392 /** |
445 * Returns SnapshotObjectId for a heap object referenced by |value| if | 393 * Returns SnapshotObjectId for a heap object referenced by |value| if |
446 * it has been seen by the heap profiler, kUnknownObjectId otherwise. | 394 * it has been seen by the heap profiler, kUnknownObjectId otherwise. |
447 */ | 395 */ |
448 SnapshotObjectId GetObjectId(Handle<Value> value); | 396 static SnapshotObjectId GetSnapshotObjectId(Handle<Value> value); |
449 | 397 |
450 /** | 398 /** |
451 * A constant for invalid SnapshotObjectId. GetSnapshotObjectId will return | 399 * A constant for invalid SnapshotObjectId. GetSnapshotObjectId will return |
452 * it in case heap profiler cannot find id for the object passed as | 400 * it in case heap profiler cannot find id for the object passed as |
453 * parameter. HeapSnapshot::GetNodeById will always return NULL for such id. | 401 * parameter. HeapSnapshot::GetNodeById will always return NULL for such id. |
454 */ | 402 */ |
455 static const SnapshotObjectId kUnknownObjectId = 0; | 403 static const SnapshotObjectId kUnknownObjectId = 0; |
456 | 404 |
457 /** | 405 /** |
458 * Callback interface for retrieving user friendly names of global objects. | 406 * Callback interface for retrieving user friendly names of global objects. |
459 */ | 407 */ |
460 class ObjectNameResolver { | 408 class ObjectNameResolver { |
461 public: | 409 public: |
462 /** | 410 /** |
463 * Returns name to be used in the heap snapshot for given node. Returned | 411 * Returns name to be used in the heap snapshot for given node. Returned |
464 * string must stay alive until snapshot collection is completed. | 412 * string must stay alive until snapshot collection is completed. |
465 */ | 413 */ |
466 virtual const char* GetName(Handle<Object> object) = 0; | 414 virtual const char* GetName(Handle<Object> object) = 0; |
467 protected: | 415 protected: |
468 virtual ~ObjectNameResolver() {} | 416 virtual ~ObjectNameResolver() {} |
469 }; | 417 }; |
470 | 418 |
471 /** Deprecated. Use TakeHeapSnapshot instead. */ | 419 /** |
| 420 * Takes a heap snapshot and returns it. Title may be an empty string. |
| 421 * See HeapSnapshot::Type for types description. |
| 422 */ |
472 static const HeapSnapshot* TakeSnapshot( | 423 static const HeapSnapshot* TakeSnapshot( |
473 Handle<String> title, | 424 Handle<String> title, |
474 HeapSnapshot::Type type = HeapSnapshot::kFull, | 425 HeapSnapshot::Type type = HeapSnapshot::kFull, |
475 ActivityControl* control = NULL, | 426 ActivityControl* control = NULL, |
476 ObjectNameResolver* global_object_name_resolver = NULL); | 427 ObjectNameResolver* global_object_name_resolver = NULL); |
477 /** | |
478 * Takes a heap snapshot and returns it. Title may be an empty string. | |
479 */ | |
480 const HeapSnapshot* TakeHeapSnapshot( | |
481 Handle<String> title, | |
482 ActivityControl* control = NULL, | |
483 ObjectNameResolver* global_object_name_resolver = NULL); | |
484 | 428 |
485 | |
486 /** Deprecated. Use StartTrackingHeapObjects instead. */ | |
487 static void StartHeapObjectsTracking(); | |
488 /** | 429 /** |
489 * Starts tracking of heap objects population statistics. After calling | 430 * Starts tracking of heap objects population statistics. After calling |
490 * this method, all heap objects relocations done by the garbage collector | 431 * this method, all heap objects relocations done by the garbage collector |
491 * are being registered. | 432 * are being registered. |
492 */ | 433 */ |
493 void StartTrackingHeapObjects(); | 434 static void StartHeapObjectsTracking(); |
494 | 435 |
495 /** Deprecated. Use GetHeapStats instead. */ | |
496 static SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); | |
497 /** | 436 /** |
498 * Adds a new time interval entry to the aggregated statistics array. The | 437 * Adds a new time interval entry to the aggregated statistics array. The |
499 * time interval entry contains information on the current heap objects | 438 * time interval entry contains information on the current heap objects |
500 * population size. The method also updates aggregated statistics and | 439 * population size. The method also updates aggregated statistics and |
501 * reports updates for all previous time intervals via the OutputStream | 440 * reports updates for all previous time intervals via the OutputStream |
502 * object. Updates on each time interval are provided as a stream of the | 441 * object. Updates on each time interval are provided as a stream of the |
503 * HeapStatsUpdate structure instances. | 442 * HeapStatsUpdate structure instances. |
504 * The return value of the function is the last seen heap object Id. | 443 * The return value of the function is the last seen heap object Id. |
505 * | 444 * |
506 * StartTrackingHeapObjects must be called before the first call to this | 445 * StartHeapObjectsTracking must be called before the first call to this |
507 * method. | 446 * method. |
508 */ | 447 */ |
509 SnapshotObjectId GetHeapStats(OutputStream* stream); | 448 static SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); |
510 | 449 |
511 /** Deprecated. Use StopTrackingHeapObjects instead. */ | |
512 static void StopHeapObjectsTracking(); | |
513 /** | 450 /** |
514 * Stops tracking of heap objects population statistics, cleans up all | 451 * Stops tracking of heap objects population statistics, cleans up all |
515 * collected data. StartHeapObjectsTracking must be called again prior to | 452 * collected data. StartHeapObjectsTracking must be called again prior to |
516 * calling PushHeapObjectsStats next time. | 453 * calling PushHeapObjectsStats next time. |
517 */ | 454 */ |
518 void StopTrackingHeapObjects(); | 455 static void StopHeapObjectsTracking(); |
519 | 456 |
520 /** Deprecated. Use DeleteAllHeapSnapshots instead. */ | |
521 static void DeleteAllSnapshots(); | |
522 /** | 457 /** |
523 * Deletes all snapshots taken. All previously returned pointers to | 458 * Deletes all snapshots taken. All previously returned pointers to |
524 * snapshots and their contents become invalid after this call. | 459 * snapshots and their contents become invalid after this call. |
525 */ | 460 */ |
526 void DeleteAllHeapSnapshots(); | 461 static void DeleteAllSnapshots(); |
527 | 462 |
528 /** Deprecated. Use SetWrapperClassInfoProvider instead. */ | 463 /** Binds a callback to embedder's class ID. */ |
529 static void DefineWrapperClass( | 464 static void DefineWrapperClass( |
530 uint16_t class_id, | 465 uint16_t class_id, |
531 WrapperInfoCallback callback); | 466 WrapperInfoCallback callback); |
532 /** Binds a callback to embedder's class ID. */ | |
533 void SetWrapperClassInfoProvider( | |
534 uint16_t class_id, | |
535 WrapperInfoCallback callback); | |
536 | 467 |
537 /** | 468 /** |
538 * Default value of persistent handle class ID. Must not be used to | 469 * Default value of persistent handle class ID. Must not be used to |
539 * define a class. Can be used to reset a class of a persistent | 470 * define a class. Can be used to reset a class of a persistent |
540 * handle. | 471 * handle. |
541 */ | 472 */ |
542 static const uint16_t kPersistentHandleNoClassId = 0; | 473 static const uint16_t kPersistentHandleNoClassId = 0; |
543 | 474 |
544 /** | 475 /** Returns the number of currently existing persistent handles. */ |
545 * Deprecated. Returns the number of currently existing persistent handles. | |
546 */ | |
547 static int GetPersistentHandleCount(); | 476 static int GetPersistentHandleCount(); |
548 | 477 |
549 /** Deprecated. Use GetHeapProfilerMemorySize instead. */ | 478 /** Returns memory used for profiler internal data and snapshots. */ |
550 static size_t GetMemorySizeUsedByProfiler(); | 479 static size_t GetMemorySizeUsedByProfiler(); |
551 /** Returns memory used for profiler internal data and snapshots. */ | |
552 size_t GetProfilerMemorySize(); | |
553 | |
554 private: | |
555 HeapProfiler(); | |
556 ~HeapProfiler(); | |
557 HeapProfiler(const HeapProfiler&); | |
558 HeapProfiler& operator=(const HeapProfiler&); | |
559 }; | 480 }; |
560 | 481 |
561 | 482 |
562 /** | 483 /** |
563 * Interface for providing information about embedder's objects | 484 * Interface for providing information about embedder's objects |
564 * held by global handles. This information is reported in two ways: | 485 * held by global handles. This information is reported in two ways: |
565 * | 486 * |
566 * 1. When calling AddObjectGroup, an embedder may pass | 487 * 1. When calling AddObjectGroup, an embedder may pass |
567 * RetainedObjectInfo instance describing the group. To collect | 488 * RetainedObjectInfo instance describing the group. To collect |
568 * this information while taking a heap snapshot, V8 calls GC | 489 * this information while taking a heap snapshot, V8 calls GC |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
628 virtual ~RetainedObjectInfo() {} | 549 virtual ~RetainedObjectInfo() {} |
629 | 550 |
630 private: | 551 private: |
631 RetainedObjectInfo(const RetainedObjectInfo&); | 552 RetainedObjectInfo(const RetainedObjectInfo&); |
632 RetainedObjectInfo& operator=(const RetainedObjectInfo&); | 553 RetainedObjectInfo& operator=(const RetainedObjectInfo&); |
633 }; | 554 }; |
634 | 555 |
635 | 556 |
636 /** | 557 /** |
637 * A struct for exporting HeapStats data from V8, using "push" model. | 558 * A struct for exporting HeapStats data from V8, using "push" model. |
638 * See HeapProfiler::GetHeapStats. | 559 * See HeapProfiler::PushHeapObjectsStats. |
639 */ | 560 */ |
640 struct HeapStatsUpdate { | 561 struct HeapStatsUpdate { |
641 HeapStatsUpdate(uint32_t index, uint32_t count, uint32_t size) | 562 HeapStatsUpdate(uint32_t index, uint32_t count, uint32_t size) |
642 : index(index), count(count), size(size) { } | 563 : index(index), count(count), size(size) { } |
643 uint32_t index; // Index of the time interval that was changed. | 564 uint32_t index; // Index of the time interval that was changed. |
644 uint32_t count; // New value of count field for the interval with this index. | 565 uint32_t count; // New value of count field for the interval with this index. |
645 uint32_t size; // New value of size field for the interval with this index. | 566 uint32_t size; // New value of size field for the interval with this index. |
646 }; | 567 }; |
647 | 568 |
648 | 569 |
649 } // namespace v8 | 570 } // namespace v8 |
650 | 571 |
651 | 572 |
652 #undef V8EXPORT | 573 #undef V8EXPORT |
653 | 574 |
654 | 575 |
655 #endif // V8_V8_PROFILER_H_ | 576 #endif // V8_V8_PROFILER_H_ |
OLD | NEW |