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

Side by Side Diff: third_party/tcmalloc/chromium/src/common.h

Issue 9722025: Fix virtual memory regression from new tcmalloc: use old kPageShift and kMaxSize w/ kNumClasses = 5… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2008, Google Inc. 1 // Copyright (c) 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 (tcmalloc::kSupportsDoublyLinkedList ? 2 : 1); 72 (tcmalloc::kSupportsDoublyLinkedList ? 2 : 1);
73 static const size_t kLinkSize = kNumFreeListPointers * sizeof(void *); 73 static const size_t kLinkSize = kNumFreeListPointers * sizeof(void *);
74 static const size_t kMinClassSize = 74 static const size_t kMinClassSize =
75 (kLinkSize > kAlignment ? kLinkSize : kAlignment); 75 (kLinkSize > kAlignment ? kLinkSize : kAlignment);
76 static const size_t kSkippedClasses = (kAlignment < kMinClassSize ? 1 : 0); 76 static const size_t kSkippedClasses = (kAlignment < kMinClassSize ? 1 : 0);
77 77
78 #if defined(TCMALLOC_LARGE_PAGES) 78 #if defined(TCMALLOC_LARGE_PAGES)
79 static const size_t kPageShift = 15; 79 static const size_t kPageShift = 15;
80 static const size_t kNumClasses = 78 - kSkippedClasses; 80 static const size_t kNumClasses = 78 - kSkippedClasses;
81 #else 81 #else
82 static const size_t kPageShift = 13; 82 // Original TCMalloc code used kPageShift == 13. In Chromium, we changed
83 static const size_t kNumClasses = 86 - kSkippedClasses; 83 // this to 12 (as was done in prior versions of TCMalloc).
84 static const size_t kPageShift = 12;
85 static const size_t kNumClasses = 54 - kSkippedClasses;
84 #endif 86 #endif
85 static const size_t kMaxThreadCacheSize = 4 << 20; 87 static const size_t kMaxThreadCacheSize = 4 << 20;
86 88
87 static const size_t kPageSize = 1 << kPageShift; 89 static const size_t kPageSize = 1 << kPageShift;
88 // TODO(dmikurube): We Chromium may want to tune this kMaxSize. 90 // Original TCMalloc code used kMaxSize == 256 * 1024. In Chromium, we
89 static const size_t kMaxSize = 256 * 1024; 91 // changed this to 32K, and represent it in terms of page size (as was done
92 // in prior versions of TCMalloc).
93 static const size_t kMaxSize = 8u * kPageSize;
90 // For all span-lengths < kMaxPages we keep an exact-size list. 94 // For all span-lengths < kMaxPages we keep an exact-size list.
91 static const size_t kMaxPages = 1 << (20 - kPageShift); 95 static const size_t kMaxPages = 1 << (20 - kPageShift);
92 96
93 // Default bound on the total amount of thread caches. 97 // Default bound on the total amount of thread caches.
94 #ifdef TCMALLOC_SMALL_BUT_SLOW 98 #ifdef TCMALLOC_SMALL_BUT_SLOW
95 // Make the overall thread cache no bigger than that of a single thread 99 // Make the overall thread cache no bigger than that of a single thread
96 // for the small memory footprint case. 100 // for the small memory footprint case.
97 static const size_t kDefaultOverallThreadCacheSize = kMaxThreadCacheSize; 101 static const size_t kDefaultOverallThreadCacheSize = kMaxThreadCacheSize;
98 #else 102 #else
99 static const size_t kDefaultOverallThreadCacheSize = 8u * kMaxThreadCacheSize; 103 static const size_t kDefaultOverallThreadCacheSize = 8u * kMaxThreadCacheSize;
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 static const int kMaxStackDepth = 31; 258 static const int kMaxStackDepth = 31;
255 struct StackTrace { 259 struct StackTrace {
256 uintptr_t size; // Size of object 260 uintptr_t size; // Size of object
257 uintptr_t depth; // Number of PC values stored in array below 261 uintptr_t depth; // Number of PC values stored in array below
258 void* stack[kMaxStackDepth]; 262 void* stack[kMaxStackDepth];
259 }; 263 };
260 264
261 } // namespace tcmalloc 265 } // namespace tcmalloc
262 266
263 #endif // TCMALLOC_COMMON_H_ 267 #endif // TCMALLOC_COMMON_H_
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698