new implementations for --gc:orc (#14121)
* cycle collector: new implementation * cycle collector: make self-adaptive based on its previous effectiveness * cycle collector: added Lins's jump stack to improve traversal from 3*N to 2*N * cycle collector: make tests green * API extensions and bugfixes * code cleanup and use --gc:orc for tasyncawait
This commit is contained in:
parent
eaedd0cb94
commit
dedb04fa9e
13 changed files with 428 additions and 21 deletions
|
|
@ -394,7 +394,7 @@ proc run(self: var LoopTesterApp) =
|
|||
echo "Constructing CFG..."
|
||||
var n = 2
|
||||
|
||||
when not defined(gcOrc):
|
||||
when true: # not defined(gcOrc):
|
||||
# currently cycle detection is so slow that we disable this part
|
||||
for parlooptrees in 1..10:
|
||||
discard self.cfg.createNode(n + 1)
|
||||
|
|
@ -437,4 +437,5 @@ proc main =
|
|||
let mem = getOccupiedMem()
|
||||
main()
|
||||
when defined(gcOrc):
|
||||
GC_fullCollect()
|
||||
doAssert getOccupiedMem() == mem
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue