introduce nimMaxHeap define to fight memory overcommit
This commit is contained in:
parent
601dc2098d
commit
0bb18d1821
2 changed files with 11 additions and 0 deletions
|
|
@ -292,10 +292,15 @@ proc writeFreeList(a: MemRegion) =
|
||||||
it, it.next, it.prev, it.size)
|
it, it.next, it.prev, it.size)
|
||||||
it = it.next
|
it = it.next
|
||||||
|
|
||||||
|
const nimMaxHeap {.intdefine.} = 0
|
||||||
|
|
||||||
proc requestOsChunks(a: var MemRegion, size: int): PBigChunk =
|
proc requestOsChunks(a: var MemRegion, size: int): PBigChunk =
|
||||||
when not defined(emscripten):
|
when not defined(emscripten):
|
||||||
if not a.blockChunkSizeIncrease:
|
if not a.blockChunkSizeIncrease:
|
||||||
let usedMem = a.currMem # - a.freeMem
|
let usedMem = a.currMem # - a.freeMem
|
||||||
|
when nimMaxHeap != 0:
|
||||||
|
if usedMem > nimMaxHeap * 1024 * 1024:
|
||||||
|
raiseOutOfMem()
|
||||||
if usedMem < 64 * 1024:
|
if usedMem < 64 * 1024:
|
||||||
a.nextChunkSize = PageSize*4
|
a.nextChunkSize = PageSize*4
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,12 @@ path:"$lib/packages/docutils"
|
||||||
|
|
||||||
define:useStdoutAsStdmsg
|
define:useStdoutAsStdmsg
|
||||||
define:nimsuggest
|
define:nimsuggest
|
||||||
|
# die when nimsuggest uses more than 4GB:
|
||||||
|
@if cpu32:
|
||||||
|
define:"nimMaxHeap=2000"
|
||||||
|
@else:
|
||||||
|
define:"nimMaxHeap=4000"
|
||||||
|
@end
|
||||||
|
|
||||||
#cs:partial
|
#cs:partial
|
||||||
#define:useNodeIds
|
#define:useNodeIds
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue