mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
introduce nimMaxHeap define to fight memory overcommit
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user