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

Side by Side Diff: src/profile-generator.cc

Issue 3572003: Fix HeapSnapshotsDiff test and a bug introduced during snapshot size optimization. (Closed)
Patch Set: Created 10 years, 2 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 unified diff | Download patch
« no previous file with comments | « src/profile-generator.h ('k') | test/cctest/cctest.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
945 void Apply(HeapEntry* entry) { } 945 void Apply(HeapEntry* entry) { }
946 }; 946 };
947 947
948 void HeapEntry::PaintAllReachable() { 948 void HeapEntry::PaintAllReachable() {
949 NullClass null; 949 NullClass null;
950 ApplyAndPaintAllReachable(&null); 950 ApplyAndPaintAllReachable(&null);
951 } 951 }
952 952
953 953
954 void HeapEntry::Print(int max_depth, int indent) { 954 void HeapEntry::Print(int max_depth, int indent) {
955 OS::Print("%6d %6d %6d [%ld] ", 955 OS::Print("%6d %6d %6d [%llu, %d] ",
956 self_size(), ReachableSize(), RetainedSize(), id_); 956 self_size(), ReachableSize(), RetainedSize(), id_, painted_);
957 if (type() != kString) { 957 if (type() != kString) {
958 OS::Print("%s %.40s\n", TypeAsString(), name_); 958 OS::Print("%s %.40s\n", TypeAsString(), name_);
959 } else { 959 } else {
960 OS::Print("\""); 960 OS::Print("\"");
961 const char* c = name_; 961 const char* c = name_;
962 while (*c && (c - name_) <= 40) { 962 while (*c && (c - name_) <= 40) {
963 if (*c != '\n') 963 if (*c != '\n')
964 OS::Print("%c", *c); 964 OS::Print("%c", *c);
965 else 965 else
966 OS::Print("\\n"); 966 OS::Print("\\n");
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
1230 } // namespace 1230 } // namespace
1231 1231
1232 HeapSnapshot::HeapSnapshot(HeapSnapshotsCollection* collection, 1232 HeapSnapshot::HeapSnapshot(HeapSnapshotsCollection* collection,
1233 HeapSnapshot::Type type, 1233 HeapSnapshot::Type type,
1234 const char* title, 1234 const char* title,
1235 unsigned uid) 1235 unsigned uid)
1236 : collection_(collection), 1236 : collection_(collection),
1237 type_(type), 1237 type_(type),
1238 title_(title), 1238 title_(title),
1239 uid_(uid), 1239 uid_(uid),
1240 root_entry_index_(-1), 1240 root_entry_(NULL),
1241 raw_entries_(NULL), 1241 raw_entries_(NULL),
1242 entries_sorted_(false) { 1242 entries_sorted_(false) {
1243 STATIC_ASSERT( 1243 STATIC_ASSERT(
1244 sizeof(HeapGraphEdge) == 1244 sizeof(HeapGraphEdge) ==
1245 SnapshotSizeConstants<sizeof(void*)>::kExpectedHeapGraphEdgeSize); // NOL INT 1245 SnapshotSizeConstants<sizeof(void*)>::kExpectedHeapGraphEdgeSize); // NOL INT
1246 STATIC_ASSERT( 1246 STATIC_ASSERT(
1247 sizeof(HeapEntry) == 1247 sizeof(HeapEntry) ==
1248 SnapshotSizeConstants<sizeof(void*)>::kExpectedHeapEntrySize); // NOLINT 1248 SnapshotSizeConstants<sizeof(void*)>::kExpectedHeapEntrySize); // NOLINT
1249 } 1249 }
1250 1250
(...skipping 18 matching lines...) Expand all
1269 raw_entries_size_ = 1269 raw_entries_size_ =
1270 HeapEntry::EntriesSize(entries_count, children_count, retainers_count); 1270 HeapEntry::EntriesSize(entries_count, children_count, retainers_count);
1271 #endif 1271 #endif
1272 } 1272 }
1273 1273
1274 1274
1275 HeapEntry* HeapSnapshot::AddEntry(HeapObject* object, 1275 HeapEntry* HeapSnapshot::AddEntry(HeapObject* object,
1276 int children_count, 1276 int children_count,
1277 int retainers_count) { 1277 int retainers_count) {
1278 if (object == kInternalRootObject) { 1278 if (object == kInternalRootObject) {
1279 ASSERT(root_entry_index_ == -1); 1279 ASSERT(root_entry_ == NULL);
1280 root_entry_index_ = entries_.length();
1281 ASSERT(retainers_count == 0); 1280 ASSERT(retainers_count == 0);
1282 return AddEntry( 1281 root_entry_ = AddEntry(
1283 HeapEntry::kInternal, "", 0, 0, children_count, retainers_count); 1282 HeapEntry::kInternal, "", 0, 0, children_count, retainers_count);
1283 return root_entry_;
1284 } else if (object->IsJSFunction()) { 1284 } else if (object->IsJSFunction()) {
1285 JSFunction* func = JSFunction::cast(object); 1285 JSFunction* func = JSFunction::cast(object);
1286 SharedFunctionInfo* shared = func->shared(); 1286 SharedFunctionInfo* shared = func->shared();
1287 String* name = String::cast(shared->name())->length() > 0 ? 1287 String* name = String::cast(shared->name())->length() > 0 ?
1288 String::cast(shared->name()) : shared->inferred_name(); 1288 String::cast(shared->name()) : shared->inferred_name();
1289 return AddEntry(object, 1289 return AddEntry(object,
1290 HeapEntry::kClosure, 1290 HeapEntry::kClosure,
1291 collection_->GetFunctionName(name), 1291 collection_->GetFunctionName(name),
1292 children_count, 1292 children_count,
1293 retainers_count); 1293 retainers_count);
(...skipping 1208 matching lines...) Expand 10 before | Expand all | Expand 10 after
2502 void HeapSnapshotJSONSerializer::SortHashMap( 2502 void HeapSnapshotJSONSerializer::SortHashMap(
2503 HashMap* map, List<HashMap::Entry*>* sorted_entries) { 2503 HashMap* map, List<HashMap::Entry*>* sorted_entries) {
2504 for (HashMap::Entry* p = map->Start(); p != NULL; p = map->Next(p)) 2504 for (HashMap::Entry* p = map->Start(); p != NULL; p = map->Next(p))
2505 sorted_entries->Add(p); 2505 sorted_entries->Add(p);
2506 sorted_entries->Sort(SortUsingEntryValue); 2506 sorted_entries->Sort(SortUsingEntryValue);
2507 } 2507 }
2508 2508
2509 } } // namespace v8::internal 2509 } } // namespace v8::internal
2510 2510
2511 #endif // ENABLE_LOGGING_AND_PROFILING 2511 #endif // ENABLE_LOGGING_AND_PROFILING
OLDNEW
« no previous file with comments | « src/profile-generator.h ('k') | test/cctest/cctest.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698