12345678910111213141516171819202122232425262728293031323334353637 |
- discard """
- output: "MEM 0"
- cmd: "nim c --gc:orc $file"
- """
- type
- Node = ref object
- kids: seq[Node]
- data: string
- proc main(x: int) =
- var n = Node(kids: @[], data: "3" & $x)
- let m = n
- n.kids.add m
- type
- NodeA = ref object
- s: char
- a: array[3, NodeA]
- proc m: NodeA =
- result = NodeA(s: 'a')
- result.a[0] = result
- result.a[1] = result
- result.a[2] = result
- proc mainA =
- for i in 0..10:
- discard m()
- let mem = getOccupiedMem()
- main(90)
- mainA()
- GC_fullCollect()
- echo "MEM ", getOccupiedMem() - mem
|