Index: src/snapshot/serialize.h |
diff --git a/src/snapshot/serialize.h b/src/snapshot/serialize.h |
index 82187663a8a20857008dd459b8a3476bb85e635c..5afafc141d531767520e6d38c13b67327aa1d486 100644 |
--- a/src/snapshot/serialize.h |
+++ b/src/snapshot/serialize.h |
@@ -617,6 +617,10 @@ class Serializer : public SerializerDeserializer { |
BackReferenceMap* back_reference_map() { return &back_reference_map_; } |
RootIndexMap* root_index_map() { return &root_index_map_; } |
+#ifdef OBJECT_PRINT |
+ void CountInstanceType(HeapObject* obj); |
+#endif // OBJECT_PRINT |
+ |
protected: |
class ObjectSerializer : public ObjectVisitor { |
public: |
@@ -718,6 +722,8 @@ class Serializer : public SerializerDeserializer { |
SnapshotByteSink* sink() const { return sink_; } |
+ void OutputStatistics(const char* name); |
+ |
Isolate* isolate_; |
SnapshotByteSink* sink_; |
@@ -746,6 +752,12 @@ class Serializer : public SerializerDeserializer { |
List<byte> code_buffer_; |
+#ifdef OBJECT_PRINT |
+ static const int kInstanceTypes = 256; |
+ int* instance_type_count_; |
+ size_t* instance_type_size_; |
+#endif // OBJECT_PRINT |
+ |
DISALLOW_COPY_AND_ASSIGN(Serializer); |
}; |
@@ -761,6 +773,8 @@ class PartialSerializer : public Serializer { |
InitializeCodeAddressMap(); |
} |
+ ~PartialSerializer() { OutputStatistics("PartialSerializer"); } |
+ |
// Serialize the objects reachable from a single object pointer. |
void Serialize(Object** o); |
virtual void SerializeObject(HeapObject* o, HowToCode how_to_code, |
@@ -803,6 +817,8 @@ class StartupSerializer : public Serializer { |
InitializeCodeAddressMap(); |
} |
+ ~StartupSerializer() { OutputStatistics("StartupSerializer"); } |
+ |
// The StartupSerializer has to serialize the root array, which is slightly |
// different. |
void VisitPointers(Object** start, Object** end) OVERRIDE; |
@@ -859,6 +875,8 @@ class CodeSerializer : public Serializer { |
back_reference_map_.AddSourceString(source); |
} |
+ ~CodeSerializer() { OutputStatistics("CodeSerializer"); } |
+ |
virtual void SerializeObject(HeapObject* o, HowToCode how_to_code, |
WhereToPoint where_to_point, int skip) OVERRIDE; |