Skip to content
Snippets Groups Projects
  1. Sep 25, 2009
    • jamesr@chromium.org's avatar
      Rounds up VirtualAlloc calls on windows to dwAllocationGranularity to prevent fragmentation · 3dec92a6
      jamesr@chromium.org authored
      Actually on Windows VirtualAlloc'ated address might have bigger alignment than reported by SYSTEM_INFO.dwPageSize, see SYSTEM_INFO.dwAllocationGranularity.
      
      As coalescing of spans in tcmalloc requires that those spans are physically adjacent, using smaller alignment inhibited coalescing. Additional benefit is we now
      require ways less memory at least in some case.
      
      Also adds assert()s for alignment values that would lead to pathological virtual address space waste.  No current callers pass in alignment values other than kPageSize and it's unlikely anyone will.
      
      Original patch and discussion was at http://codereview.chromium.org/235003
      
      Patch by: antonm@chromium.org
      
      BUG=22701
      TEST=Manually checked test page that did 10m XHR. Memory use goes from >2GB and a crash to 102MB. Membuster shows the change is roughly within noise and possibly a very slight regression ( <<5% ).
      
      Review URL: http://codereview.chromium.org/222028
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27162 0039d316-1c4b-4281-b951-d872f2087c98
      3dec92a6
  2. Aug 12, 2009
    • mbelshe@google.com's avatar
      Major changes to the Chrome allocator. · 14239acc
      mbelshe@google.com authored
      Changes include:
      * Fix tcmalloc to release memory.  Implements the TCMalloc_SystemCommit()
        mechanism so that tcmalloc can implement SystemRelease() and later 
        reuse that memory.
      * Enable dynamic switching of allocators based on an environment variable.
        Users can now switch between tcmalloc, jemalloc, the default windows
        heap, and the windows low-fragmentation heap.
      * Implements set_new_mode() across all allocators so that we can be sure
        that out-of-memory conditions are handled safely.
      
      BUG=18345
      TEST=none; plan to get all unit tests running through these allocators.
      
      
      Review URL: http://codereview.chromium.org/165275
      
      git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23140 0039d316-1c4b-4281-b951-d872f2087c98
      14239acc
Loading