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

Side by Side Diff: content/app/content_main_runner.cc

Issue 12224030: Linux: add option to use system tcmalloc (off by default) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 10 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 | « chrome/chrome_renderer.gypi ('k') | content/content_app.gypi » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/public/app/content_main_runner.h" 5 #include "content/public/app/content_main_runner.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include "base/allocator/allocator_extension.h" 9 #include "base/allocator/allocator_extension.h"
10 #include "base/at_exit.h" 10 #include "base/at_exit.h"
(...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 542
543 // For tcmalloc, we need to tell it to behave like new. 543 // For tcmalloc, we need to tell it to behave like new.
544 tc_set_new_mode(1); 544 tc_set_new_mode(1);
545 545
546 // On windows, we've already set these thunks up in _heap_init() 546 // On windows, we've already set these thunks up in _heap_init()
547 base::allocator::SetGetAllocatorWasteSizeFunction( 547 base::allocator::SetGetAllocatorWasteSizeFunction(
548 GetAllocatorWasteSizeThunk); 548 GetAllocatorWasteSizeThunk);
549 base::allocator::SetGetStatsFunction(GetStatsThunk); 549 base::allocator::SetGetStatsFunction(GetStatsThunk);
550 base::allocator::SetReleaseFreeMemoryFunction(ReleaseFreeMemoryThunk); 550 base::allocator::SetReleaseFreeMemoryFunction(ReleaseFreeMemoryThunk);
551 551
552 #if !defined(USE_SYSTEM_TCMALLOC)
552 // Provide optional hook for monitoring allocation quantities on a 553 // Provide optional hook for monitoring allocation quantities on a
553 // per-thread basis. Only set the hook if the environment indicates this 554 // per-thread basis. Only set the hook if the environment indicates this
554 // needs to be enabled. 555 // needs to be enabled.
555 const char* profiling = getenv(tracked_objects::kAlternateProfilerTime); 556 const char* profiling = getenv(tracked_objects::kAlternateProfilerTime);
556 if (profiling && 557 if (profiling &&
557 (atoi(profiling) == tracked_objects::TIME_SOURCE_TYPE_TCMALLOC)) { 558 (atoi(profiling) == tracked_objects::TIME_SOURCE_TYPE_TCMALLOC)) {
558 tracked_objects::SetAlternateTimeSource( 559 tracked_objects::SetAlternateTimeSource(
559 MallocExtension::GetBytesAllocatedOnCurrentThread, 560 MallocExtension::GetBytesAllocatedOnCurrentThread,
560 tracked_objects::TIME_SOURCE_TYPE_TCMALLOC); 561 tracked_objects::TIME_SOURCE_TYPE_TCMALLOC);
561 } 562 }
562 #endif 563 #endif // !defined(USE_SYSTEM_TCMALLOC)
564 #endif // !defined(OS_MACOSX) && defined(USE_TCMALLOC)
563 565
564 // On Android, 566 // On Android,
565 // - setlocale() is not supported. 567 // - setlocale() is not supported.
566 // - We do not override the signal handlers so that we can get 568 // - We do not override the signal handlers so that we can get
567 // stack trace when crashing. 569 // stack trace when crashing.
568 // - The ipc_fd is passed through the Java service. 570 // - The ipc_fd is passed through the Java service.
569 // Thus, these are all disabled. 571 // Thus, these are all disabled.
570 #if !defined(OS_ANDROID) && !defined(OS_IOS) 572 #if !defined(OS_ANDROID) && !defined(OS_IOS)
571 // Set C library locale to make sure CommandLine can parse argument values 573 // Set C library locale to make sure CommandLine can parse argument values
572 // in correct encoding. 574 // in correct encoding.
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 814
813 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl); 815 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl);
814 }; 816 };
815 817
816 // static 818 // static
817 ContentMainRunner* ContentMainRunner::Create() { 819 ContentMainRunner* ContentMainRunner::Create() {
818 return new ContentMainRunnerImpl(); 820 return new ContentMainRunnerImpl();
819 } 821 }
820 822
821 } // namespace content 823 } // namespace content
OLDNEW
« no previous file with comments | « chrome/chrome_renderer.gypi ('k') | content/content_app.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698