OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 StringsStorage(); | 65 StringsStorage(); |
66 ~StringsStorage(); | 66 ~StringsStorage(); |
67 | 67 |
68 const char* GetCopy(const char* src); | 68 const char* GetCopy(const char* src); |
69 const char* GetFormatted(const char* format, ...); | 69 const char* GetFormatted(const char* format, ...); |
70 const char* GetVFormatted(const char* format, va_list args); | 70 const char* GetVFormatted(const char* format, va_list args); |
71 const char* GetName(String* name); | 71 const char* GetName(String* name); |
72 const char* GetName(int index); | 72 const char* GetName(int index); |
73 inline const char* GetFunctionName(String* name); | 73 inline const char* GetFunctionName(String* name); |
74 inline const char* GetFunctionName(const char* name); | 74 inline const char* GetFunctionName(const char* name); |
| 75 size_t GetUsedMemorySize() const; |
75 | 76 |
76 private: | 77 private: |
77 static const int kMaxNameSize = 1024; | 78 static const int kMaxNameSize = 1024; |
78 | 79 |
79 INLINE(static bool StringsMatch(void* key1, void* key2)) { | 80 INLINE(static bool StringsMatch(void* key1, void* key2)) { |
80 return strcmp(reinterpret_cast<char*>(key1), | 81 return strcmp(reinterpret_cast<char*>(key1), |
81 reinterpret_cast<char*>(key2)) == 0; | 82 reinterpret_cast<char*>(key2)) == 0; |
82 } | 83 } |
83 const char* AddOrDisposeString(char* str, uint32_t hash); | 84 const char* AddOrDisposeString(char* str, uint32_t hash); |
84 | 85 |
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 void SnapshotGenerationFinished(); | 644 void SnapshotGenerationFinished(); |
644 SnapshotObjectId FindEntry(Address addr); | 645 SnapshotObjectId FindEntry(Address addr); |
645 SnapshotObjectId FindOrAddEntry(Address addr, unsigned int size); | 646 SnapshotObjectId FindOrAddEntry(Address addr, unsigned int size); |
646 void MoveObject(Address from, Address to); | 647 void MoveObject(Address from, Address to); |
647 SnapshotObjectId last_assigned_id() const { | 648 SnapshotObjectId last_assigned_id() const { |
648 return next_id_ - kObjectIdStep; | 649 return next_id_ - kObjectIdStep; |
649 } | 650 } |
650 | 651 |
651 void StopHeapObjectsTracking(); | 652 void StopHeapObjectsTracking(); |
652 SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); | 653 SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); |
| 654 size_t GetUsedMemorySize() const; |
653 | 655 |
654 static SnapshotObjectId GenerateId(v8::RetainedObjectInfo* info); | 656 static SnapshotObjectId GenerateId(v8::RetainedObjectInfo* info); |
655 static inline SnapshotObjectId GetNthGcSubrootId(int delta); | 657 static inline SnapshotObjectId GetNthGcSubrootId(int delta); |
656 | 658 |
657 static const int kObjectIdStep = 2; | 659 static const int kObjectIdStep = 2; |
658 static const SnapshotObjectId kInternalRootObjectId; | 660 static const SnapshotObjectId kInternalRootObjectId; |
659 static const SnapshotObjectId kGcRootsObjectId; | 661 static const SnapshotObjectId kGcRootsObjectId; |
660 static const SnapshotObjectId kNativesRootObjectId; | 662 static const SnapshotObjectId kNativesRootObjectId; |
661 static const SnapshotObjectId kGcRootsFirstSubrootId; | 663 static const SnapshotObjectId kGcRootsFirstSubrootId; |
662 static const SnapshotObjectId kFirstAvailableObjectId; | 664 static const SnapshotObjectId kFirstAvailableObjectId; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 return ids_.FindEntry(object_addr); | 729 return ids_.FindEntry(object_addr); |
728 } | 730 } |
729 SnapshotObjectId GetObjectId(Address object_addr, int object_size) { | 731 SnapshotObjectId GetObjectId(Address object_addr, int object_size) { |
730 return ids_.FindOrAddEntry(object_addr, object_size); | 732 return ids_.FindOrAddEntry(object_addr, object_size); |
731 } | 733 } |
732 Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); | 734 Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); |
733 void ObjectMoveEvent(Address from, Address to) { ids_.MoveObject(from, to); } | 735 void ObjectMoveEvent(Address from, Address to) { ids_.MoveObject(from, to); } |
734 SnapshotObjectId last_assigned_id() const { | 736 SnapshotObjectId last_assigned_id() const { |
735 return ids_.last_assigned_id(); | 737 return ids_.last_assigned_id(); |
736 } | 738 } |
| 739 size_t GetUsedMemorySize() const; |
737 | 740 |
738 private: | 741 private: |
739 INLINE(static bool HeapSnapshotsMatch(void* key1, void* key2)) { | 742 INLINE(static bool HeapSnapshotsMatch(void* key1, void* key2)) { |
740 return key1 == key2; | 743 return key1 == key2; |
741 } | 744 } |
742 | 745 |
743 bool is_tracking_objects_; // Whether tracking object moves is needed. | 746 bool is_tracking_objects_; // Whether tracking object moves is needed. |
744 List<HeapSnapshot*> snapshots_; | 747 List<HeapSnapshot*> snapshots_; |
745 // Mapping from snapshots' uids to HeapSnapshot* pointers. | 748 // Mapping from snapshots' uids to HeapSnapshot* pointers. |
746 HashMap snapshots_uids_; | 749 HashMap snapshots_uids_; |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1092 | 1095 |
1093 friend class HeapSnapshotJSONSerializerEnumerator; | 1096 friend class HeapSnapshotJSONSerializerEnumerator; |
1094 friend class HeapSnapshotJSONSerializerIterator; | 1097 friend class HeapSnapshotJSONSerializerIterator; |
1095 | 1098 |
1096 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); | 1099 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); |
1097 }; | 1100 }; |
1098 | 1101 |
1099 } } // namespace v8::internal | 1102 } } // namespace v8::internal |
1100 | 1103 |
1101 #endif // V8_PROFILE_GENERATOR_H_ | 1104 #endif // V8_PROFILE_GENERATOR_H_ |
OLD | NEW |