Macs appear to support MADV_DONTNEED (at least they are doc'ed as such).
 However, wtf/Platform.h seems to imply Apple uses mmap/munmap instead of
madvise for their tcmalloc fork.

The tcmalloc in third_party does not appear to have the mmap/munmap support
seen in WTF's tcmalloc, so our TCMalloc_SystemRelease() would be a noop on
the Mac.  Thus a naive compile and use on Mac will be unlikely to reduce the
working set.

Experimenting with tcmalloc (or jemalloc or whatever) on Mac would be
interesting.

jrg


On Wed, Oct 28, 2009 at 11:26 AM, Mike Belshe <mbel...@google.com> wrote:

> On Wed, Oct 28, 2009 at 10:54 AM, Jens Alfke <s...@chromium.org> wrote:
>
>>
>> On Oct 27, 2009, at 9:10 PM, Mike Belshe wrote:
>>
>> From a performance perspective, it may be critical to use tcmalloc to
>> match safari performance.  It was literally a 50% speedup on most of the DOM
>> perf when running on WinXP.
>>
>>
>> Yeah, I've profiled some of the Dromaeo benchmarks, and the DOM-mutation
>> test in particular is spending huge amounts of time in malloc and free.
>>
>> Should I open a bug on this task, then?
>>
>
> SGTM.
>
>
>>
>> I suspect this will use the version of TCMalloc which is embedded in WTF.
>>  I'd recommend against this approach.  We should try to use a single
>> allocator for the entire app
>>
>>
>> I agree; no sense linking in two different versions of tcmalloc.
>>
>> There is a disadvantage.  I suspect Apple is farther along in optimizing
>> the mac-specific optimizations of tcmalloc than the google3 guys are.
>>
>>
>> I would say more generally "*client*-specific optimizations". Some of the
>> recent memory-bloat issues found by the Memory taskforce (jamesr in
>> particular) show that baseline tcmalloc is tuned for server environments
>> where memory footprint is much less of an issue.
>>
>
> That may be true too, but, having looked at what they've done, I don't
> think they've done a lot to fix this problem (yet).  Chrome now uses a lot
> less memory than safari.
>
> I was really pointing out the mac-port potential problems.  See tcmalloc's
> TCMalloc_SystemAlloc() routines ported to the mac.  I don't know that the
> google3 tools has a mac version at all?  tcmalloc was designed for linux
> which leverages a cute trick using MADV_DONT_NEED (is this MADV_FREE_REUSE
> on the mac?) to release memory (sorta).    It may be that we can port the
> webkit implementations for mac back to the google3-perftools open source
> project, and also make it release memory better.
>
> If you pick up this task, you can ask Jim, James or me for details; I think
> we've all been fairly deep into tcmalloc to help get you ramped up quickly.
>
>
> Mike
>
>
>
>
>
>> —Jens
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to