Index: runtime/vm/heap_histogram.h |
=================================================================== |
--- runtime/vm/heap_histogram.h (revision 33311) |
+++ runtime/vm/heap_histogram.h (working copy) |
@@ -1,76 +0,0 @@ |
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-#ifndef VM_HEAP_HISTOGRAM_H_ |
-#define VM_HEAP_HISTOGRAM_H_ |
- |
-#include "platform/assert.h" |
-#include "vm/flags.h" |
-#include "vm/globals.h" |
-#include "vm/raw_object.h" |
- |
-namespace dart { |
- |
-class JSONStream; |
- |
-DECLARE_FLAG(bool, print_object_histogram); |
- |
-// ObjectHistogram is used to compute an average object histogram over |
-// the lifetime of an isolate and then print the histogram when the isolate |
-// is shut down. Information is gathered at the back-edge of each major GC |
-// event. When an object histogram is collected for an isolate, an extra major |
-// GC is performed just prior to shutdown. |
-class ObjectHistogram { |
- public: |
- explicit ObjectHistogram(Isolate* isolate); |
- ~ObjectHistogram(); |
- |
- // Called when a new class is registered in the isolate. |
- void RegisterClass(const Class& cls); |
- |
- // Collect sample for the histogram. Called at back-edge of major GC. |
- void Collect(); |
- |
- // Print the histogram on stdout. |
- void Print(); |
- |
- void PrintToJSONStream(JSONStream* stream); |
- |
- private: |
- // Add obj to histogram |
- void Add(RawObject* obj); |
- |
- // For each class an Element keeps track of the accounting. |
- class Element : public ValueObject { |
- public: |
- void Add(int size) { |
- count_++; |
- size_ += size; |
- } |
- intptr_t class_id_; |
- intptr_t count_; |
- intptr_t size_; |
- }; |
- |
- // Compare function for sorting result. |
- static int compare(const Element** a, const Element** b); |
- |
- // This function returns a malloced array. Caller is responsible for calling |
- // free(). |
- Element** GetSortedArray(intptr_t* array_length); |
- |
- intptr_t major_gc_count_; |
- intptr_t table_length_; |
- Element* table_; |
- Isolate* isolate_; |
- |
- friend class ObjectHistogramVisitor; |
- |
- DISALLOW_COPY_AND_ASSIGN(ObjectHistogram); |
-}; |
- |
-} // namespace dart |
- |
-#endif // VM_HEAP_HISTOGRAM_H_ |
- |