Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: src/allocation-tracker.h

Issue 1356223004: Move heap and CPU profilers into a dedicated directory. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebaseline Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « BUILD.gn ('k') | src/allocation-tracker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/allocation-tracker.h
diff --git a/src/allocation-tracker.h b/src/allocation-tracker.h
deleted file mode 100644
index c409f2437bb4341e33b5c9daa7db753de7f5bc96..0000000000000000000000000000000000000000
--- a/src/allocation-tracker.h
+++ /dev/null
@@ -1,157 +0,0 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_ALLOCATION_TRACKER_H_
-#define V8_ALLOCATION_TRACKER_H_
-
-#include <map>
-
-#include "include/v8-profiler.h"
-#include "src/handles.h"
-#include "src/hashmap.h"
-#include "src/list.h"
-#include "src/vector.h"
-
-namespace v8 {
-namespace internal {
-
-// Forward declarations.
-class AllocationTraceTree;
-class AllocationTracker;
-class HeapObjectsMap;
-class SharedFunctionInfo;
-class StringsStorage;
-
-class AllocationTraceNode {
- public:
- AllocationTraceNode(AllocationTraceTree* tree,
- unsigned function_info_index);
- ~AllocationTraceNode();
- AllocationTraceNode* FindChild(unsigned function_info_index);
- AllocationTraceNode* FindOrAddChild(unsigned function_info_index);
- void AddAllocation(unsigned size);
-
- unsigned function_info_index() const { return function_info_index_; }
- unsigned allocation_size() const { return total_size_; }
- unsigned allocation_count() const { return allocation_count_; }
- unsigned id() const { return id_; }
- Vector<AllocationTraceNode*> children() const { return children_.ToVector(); }
-
- void Print(int indent, AllocationTracker* tracker);
-
- private:
- AllocationTraceTree* tree_;
- unsigned function_info_index_;
- unsigned total_size_;
- unsigned allocation_count_;
- unsigned id_;
- List<AllocationTraceNode*> children_;
-
- DISALLOW_COPY_AND_ASSIGN(AllocationTraceNode);
-};
-
-
-class AllocationTraceTree {
- public:
- AllocationTraceTree();
- ~AllocationTraceTree();
- AllocationTraceNode* AddPathFromEnd(const Vector<unsigned>& path);
- AllocationTraceNode* root() { return &root_; }
- unsigned next_node_id() { return next_node_id_++; }
- void Print(AllocationTracker* tracker);
-
- private:
- unsigned next_node_id_;
- AllocationTraceNode root_;
-
- DISALLOW_COPY_AND_ASSIGN(AllocationTraceTree);
-};
-
-
-class AddressToTraceMap {
- public:
- void AddRange(Address addr, int size, unsigned node_id);
- unsigned GetTraceNodeId(Address addr);
- void MoveObject(Address from, Address to, int size);
- void Clear();
- size_t size() { return ranges_.size(); }
- void Print();
-
- private:
- struct RangeStack {
- RangeStack(Address start, unsigned node_id)
- : start(start), trace_node_id(node_id) {}
- Address start;
- unsigned trace_node_id;
- };
- // [start, end) -> trace
- typedef std::map<Address, RangeStack> RangeMap;
-
- void RemoveRange(Address start, Address end);
-
- RangeMap ranges_;
-};
-
-class AllocationTracker {
- public:
- struct FunctionInfo {
- FunctionInfo();
- const char* name;
- SnapshotObjectId function_id;
- const char* script_name;
- int script_id;
- int line;
- int column;
- };
-
- AllocationTracker(HeapObjectsMap* ids, StringsStorage* names);
- ~AllocationTracker();
-
- void PrepareForSerialization();
- void AllocationEvent(Address addr, int size);
-
- AllocationTraceTree* trace_tree() { return &trace_tree_; }
- const List<FunctionInfo*>& function_info_list() const {
- return function_info_list_;
- }
- AddressToTraceMap* address_to_trace() { return &address_to_trace_; }
-
- private:
- unsigned AddFunctionInfo(SharedFunctionInfo* info, SnapshotObjectId id);
- static void DeleteFunctionInfo(FunctionInfo** info);
- unsigned functionInfoIndexForVMState(StateTag state);
-
- class UnresolvedLocation {
- public:
- UnresolvedLocation(Script* script, int start, FunctionInfo* info);
- ~UnresolvedLocation();
- void Resolve();
-
- private:
- static void HandleWeakScript(
- const v8::WeakCallbackData<v8::Value, void>& data);
-
- Handle<Script> script_;
- int start_position_;
- FunctionInfo* info_;
- };
- static void DeleteUnresolvedLocation(UnresolvedLocation** location);
-
- static const int kMaxAllocationTraceLength = 64;
- HeapObjectsMap* ids_;
- StringsStorage* names_;
- AllocationTraceTree trace_tree_;
- unsigned allocation_trace_buffer_[kMaxAllocationTraceLength];
- List<FunctionInfo*> function_info_list_;
- HashMap id_to_function_info_index_;
- List<UnresolvedLocation*> unresolved_locations_;
- unsigned info_index_for_other_state_;
- AddressToTraceMap address_to_trace_;
-
- DISALLOW_COPY_AND_ASSIGN(AllocationTracker);
-};
-
-} } // namespace v8::internal
-
-#endif // V8_ALLOCATION_TRACKER_H_
« no previous file with comments | « BUILD.gn ('k') | src/allocation-tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698