[ 
https://issues.apache.org/jira/browse/SVN-4667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15795163#comment-15795163
 ] 

Julian Foad commented on SVN-4667:
----------------------------------

The code I'm using to print overall memory usage of the process (RSS in Linux) 
is:

{code:none}
/* Return this process's memory usage (RSS) in MB. */
static int memory_rss_mb(void)
{
  struct rusage rusage;
  getrusage(RUSAGE_SELF, &rusage);
  return rusage.ru_maxrss / 1024;
}

static int _mem_base = -1, _mem_last = 0;

#define MEMORY_USAGE() \
  { int _mem_now = memory_rss_mb(), _mem_increase = _mem_now - _mem_last; \
  if (_mem_base < 0) _mem_base = _mem_now; \
  else if (_mem_increase > 1) \
  SVN_DBG(("using %d+%d MB; increase %+d MB", \
           _mem_base, _mem_now - _mem_base, _mem_increase)); \
  _mem_last = _mem_now; \
  }
{code}

followed by, in many places in interesting parts of 
subversion/libsvn_client/merge.c,

{code:none}
  MEMORY_USAGE();
{code}

> Merge uses large amount of memory
> ---------------------------------
>
>                 Key: SVN-4667
>                 URL: https://issues.apache.org/jira/browse/SVN-4667
>             Project: Subversion
>          Issue Type: Bug
>    Affects Versions: 1.9.4
>            Reporter: Julian Foad
>         Attachments: repro-test-1.patch, repro-test-2.patch
>
>
> A WANdisco customer found that a merge will not complete with 4 GB RAM and 
> will complete with 5 GB RAM available.
> The branches involved have subtree mergeinfo on over 3500 files, each 
> referring to about 350 branches on average, and just over 1 revision range on 
> average per mergeinfo line. Average path length is under 100 bytes.
> This seems already far too much memory usage for the size of the data set, 
> and the size of the data set is growing.
> This issue is about reducing the amount of RAM Subversion uses given this 
> data set. Another way to approach the problem is to reduce the amount of 
> subtree mergeinfo by changing the work flow practices; that approach is also 
> being investigated but is not in the scope of this issue, except to note that 
> the tools "svn-mergeinfo-normalizer" and "svn-clean-mergeinfo.pl" both also 
> fail to execute in the available RAM.
> (WANdisco's internal issue id: SVNB-1952.)
> (For reference, past issues about merge using too much memory include 
> SVN-3393 "Merge consuming too much memory" and SVN-3854 "Out of memory during 
> merge with many Tree Conflicts".)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to