introduce nimMaxHeap define to fight memory overcommit

This commit is contained in:
Andreas Rumpf
2017-02-10 09:22:28 +01:00
parent 601dc2098d
commit 0bb18d1821
2 changed files with 11 additions and 0 deletions

View File

@@ -292,10 +292,15 @@ proc writeFreeList(a: MemRegion) =
it, it.next, it.prev, it.size)
it = it.next
const nimMaxHeap {.intdefine.} = 0
proc requestOsChunks(a: var MemRegion, size: int): PBigChunk =
when not defined(emscripten):
if not a.blockChunkSizeIncrease:
let usedMem = a.currMem # - a.freeMem
when nimMaxHeap != 0:
if usedMem > nimMaxHeap * 1024 * 1024:
raiseOutOfMem()
if usedMem < 64 * 1024:
a.nextChunkSize = PageSize*4
else:

View File

@@ -8,6 +8,12 @@ path:"$lib/packages/docutils"
define:useStdoutAsStdmsg
define:nimsuggest
# die when nimsuggest uses more than 4GB:
@if cpu32:
define:"nimMaxHeap=2000"
@else:
define:"nimMaxHeap=4000"
@end
#cs:partial
#define:useNodeIds