more tweaks/fixes ... simplify leak alarms

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/ec/trunk@38779 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2015-07-09 12:58:57 +00:00
parent 082b2d6742
commit 0b4401c2d9
2 changed files with 29 additions and 38 deletions

View file

@ -296,7 +296,7 @@ extern NSString* cmdVersion(NSString *ver);
* current peak value) in process memory usage after which * current peak value) in process memory usage after which
* an alert is generated.<br /> * an alert is generated.<br />
* If this is not set (or is set to a value less than 10KB or * If this is not set (or is set to a value less than 10KB or
* greater than 1000000KB) then a value of 5000KB is used.<br /> * greater than 1GB) then a value of 5MB is used.<br />
* Setting a higher value makes memory leak detection less * Setting a higher value makes memory leak detection less
* sensitive (but reduces unnecessary alerts).<br /> * sensitive (but reduces unnecessary alerts).<br />
* If used in conjunction with EcMemoryPercentage, the greater * If used in conjunction with EcMemoryPercentage, the greater
@ -325,7 +325,7 @@ extern NSString* cmdVersion(NSString *ver);
* The increase is calculated as a percentage of the current * The increase is calculated as a percentage of the current
* peak memory usage value when an alert is generated.<br /> * peak memory usage value when an alert is generated.<br />
* If this is not set (or is set to a value less than 1 or * If this is not set (or is set to a value less than 1 or
* greater than 1000) then a value of 10 is used.<br /> * greater than 100) then a value of 5 is used.<br />
* Setting a higher value make memory leak detection less * Setting a higher value make memory leak detection less
* sensitive (but reduces unnecessary alerts).<br /> * sensitive (but reduces unnecessary alerts).<br />
* If used in conjunction with EcMemoryIncrement, the greater * If used in conjunction with EcMemoryIncrement, the greater

View file

@ -3130,7 +3130,7 @@ With two parameters ('allowed' and a number),\n\
Set to 'default' to revert to the default.\n\ Set to 'default' to revert to the default.\n\
With two parameters ('increment' and a number),\n\ With two parameters ('increment' and a number),\n\
the size increment between warnings about process size is set (in KB\n\ the size increment between warnings about process size is set (in KB\n\
from 10 to 1000000). Set to 'default' to revert to the default.\n\ from 10 to 1048576). Set to 'default' to revert to the default.\n\
With two parameters ('percentage' and a number),\n\ With two parameters ('percentage' and a number),\n\
the percentage increment between warnings about process memory size is\n\ the percentage increment between warnings about process memory size is\n\
set (from 1 to 1000). Set to 'default' to revert to the default.\n\ set (from 1 to 1000). Set to 'default' to revert to the default.\n\
@ -3244,7 +3244,7 @@ With two parameters ('maximum' and a number),\n\
} }
else if ([op caseInsensitiveCompare: @"increment"] == NSOrderedSame) else if ([op caseInsensitiveCompare: @"increment"] == NSOrderedSame)
{ {
if (val <= 10 || val > 1000000) if (val <= 10 || val > 1048576)
{ {
[cmdDefs setCommand: nil forKey: @"MemoryIncrement"]; [cmdDefs setCommand: nil forKey: @"MemoryIncrement"];
[self cmdPrintf: @"MemoryIncrement using default value.\n"]; [self cmdPrintf: @"MemoryIncrement using default value.\n"];
@ -3395,7 +3395,7 @@ With two parameters ('maximum' and a number),\n\
@" %"PRIu64"KB (start)\n", @" %"PRIu64"KB (start)\n",
memAvge/1024, memStrt/1024]; memAvge/1024, memStrt/1024];
[self cmdPrintf: @" %"PRIu64"KB (reserved)\n", [self cmdPrintf: @" %"PRIu64"KB (reserved)\n",
[self ecNotLeaked]/1024]; ((uint64_t)[self ecNotLeaked])/1024];
if (memSlot < MEMCOUNT) if (memSlot < MEMCOUNT)
{ {
[self cmdPrintf: @"Memory error reporting disabled (for %d min" [self cmdPrintf: @"Memory error reporting disabled (for %d min"
@ -4380,39 +4380,29 @@ With two parameters ('maximum' and a number),\n\
* the larger. * the larger.
*/ */
pct = [cmdDefs integerForKey: @"MemoryPercentage"]; pct = [cmdDefs integerForKey: @"MemoryPercentage"];
if (pct < 1 || pct > 1000) pct = 0; if (pct < 1 || pct > 100)
{
/* Set the next alerting threshold 5%
* the current peak usage,
* ensuring that only serious increases
* in usage will generate an alert.
*/
pct = 5;
}
pMax = (memPeak * (100 + pct)) / 100;
inc = [cmdDefs integerForKey: @"MemoryIncrement"]; inc = [cmdDefs integerForKey: @"MemoryIncrement"];
if (inc < 10 || inc > 1000000) inc = 0; if (inc < 10 || inc > 1048576)
if (0 == inc && 0 == pct)
{ {
if (YES == memDebug) /* Set the next alerting threshold from
{ * 5MB above the current peak usage,
/* We want detailed memory information, so we set the next * ensuring that only serious increases
* alerting threshold 50 KB above the current peak usage. * in usage will generate an alert.
*/ */
inc = 50; inc = 5 * 1024;
pct = 0;
}
else
{
/* We do not want detailed memory information,
* so we set the next alerting threshold from
* 5000 KB above the current peak usage,
* ensuring that only serious increases
* in usage will generate an alert.
*/
inc = 5000;
pct = 10; // Use ten percent if more than fixed increment
}
}
if (inc > 0)
{
iMax = memPeak + (inc * 1024);
}
if (pct > 0)
{
pMax = (memPeak * (100 + pct)) / 100;
} }
iMax = memPeak + (inc * 1024);
memWarn = (iMax > pMax) ? iMax : pMax; memWarn = (iMax > pMax) ? iMax : pMax;
if (memWarn % 1024) if (memWarn % 1024)
{ {
@ -4441,13 +4431,14 @@ With two parameters ('maximum' and a number),\n\
{ {
[self cmdError: @"Average memory usage grown from %" [self cmdError: @"Average memory usage grown from %"
PRIu64"KB to %"PRIu64"KB (reserved: %"PRIu64"KB)", PRIu64"KB to %"PRIu64"KB (reserved: %"PRIu64"KB)",
prev/1024, memAvge/1024, [self ecNotLeaked]/1024]; prev/1024, memAvge/1024, ((uint64_t)[self ecNotLeaked])/1024];
} }
else else
{ {
[self cmdError: @"Average memory usage grown from %" [self cmdError: @"Average memory usage grown from %"
PRIu64"KB to %"PRIu64"KB (reserved: %"PRIu64"KB) since %@", PRIu64"KB to %"PRIu64"KB (reserved: %"PRIu64"KB) since %@",
prev/1024, memAvge/1024, [self ecNotLeaked]/1024, when]; prev/1024, memAvge/1024, ((uint64_t)[self ecNotLeaked])/1024,
when];
} }
} }
} }
@ -4456,7 +4447,7 @@ With two parameters ('maximum' and a number),\n\
{ {
[self cmdDbg: cmdDetailDbg [self cmdDbg: cmdDetailDbg
msg: @"Memory usage %"PRIu64"KB (reserved: %"PRIu64"KB)", msg: @"Memory usage %"PRIu64"KB (reserved: %"PRIu64"KB)",
memLast/1024, [self ecNotLeaked]/1024]; memLast/1024, ((uint64_t)[self ecNotLeaked])/1024];
} }
} }