| 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_
|
| -
|
|
|