disable talloc2 on 32 bits (#10656)
This commit is contained in:
parent
28394153ab
commit
1ae61767f8
1 changed files with 35 additions and 36 deletions
|
|
@ -1,46 +1,45 @@
|
||||||
discard """
|
discard """
|
||||||
disabled: "windows"
|
disabled: "windows"
|
||||||
joinable: false
|
joinable: false
|
||||||
|
disabled: 32bit
|
||||||
"""
|
"""
|
||||||
|
# no point to test this on system with smaller address space
|
||||||
# appveyor is "out of memory"
|
# appveyor is "out of memory"
|
||||||
|
|
||||||
when sizeof(int) >= 8:
|
const
|
||||||
# no point to test this on system with smaller address space
|
nmax = 2*1024*1024*1024
|
||||||
const
|
|
||||||
nmax = 2*1024*1024*1024
|
|
||||||
|
|
||||||
proc test(n: int) =
|
proc test(n: int) =
|
||||||
var a = alloc0(9999)
|
var a = alloc0(9999)
|
||||||
var t = cast[ptr UncheckedArray[int8]](alloc(n))
|
var t = cast[ptr UncheckedArray[int8]](alloc(n))
|
||||||
var b = alloc0(9999)
|
var b = alloc0(9999)
|
||||||
t[0] = 1
|
t[0] = 1
|
||||||
t[1] = 2
|
t[1] = 2
|
||||||
t[n-2] = 3
|
t[n-2] = 3
|
||||||
t[n-1] = 4
|
t[n-1] = 4
|
||||||
dealloc(a)
|
dealloc(a)
|
||||||
dealloc(t)
|
dealloc(t)
|
||||||
dealloc(b)
|
dealloc(b)
|
||||||
|
|
||||||
# allocator adds 48 bytes to BigChunk
|
# allocator adds 48 bytes to BigChunk
|
||||||
# BigChunk allocator edges at 2^n * (1 - s) for s = [1..32]/64
|
# BigChunk allocator edges at 2^n * (1 - s) for s = [1..32]/64
|
||||||
proc test2(n: int) =
|
proc test2(n: int) =
|
||||||
let d = n div 256 # cover edges and more
|
let d = n div 256 # cover edges and more
|
||||||
for i in countdown(128,1):
|
for i in countdown(128,1):
|
||||||
for j in [-4096, -64, -49, -48, -47, -32, 0, 4096]:
|
for j in [-4096, -64, -49, -48, -47, -32, 0, 4096]:
|
||||||
let b = n + j - i*d
|
let b = n + j - i*d
|
||||||
if b>0 and b<=nmax:
|
if b>0 and b<=nmax:
|
||||||
test(b)
|
test(b)
|
||||||
#echo b, ": ", getTotalMem(), " ", getOccupiedMem(), " ", getFreeMem()
|
#echo b, ": ", getTotalMem(), " ", getOccupiedMem(), " ", getFreeMem()
|
||||||
|
|
||||||
proc test3 =
|
proc test3 =
|
||||||
var n = 1
|
var n = 1
|
||||||
while n <= nmax:
|
while n <= nmax:
|
||||||
test2(n)
|
test2(n)
|
||||||
n *= 2
|
n *= 2
|
||||||
n = nmax
|
n = nmax
|
||||||
while n >= 1:
|
while n >= 1:
|
||||||
test2(n)
|
test2(n)
|
||||||
n = n div 2
|
n = n div 2
|
||||||
|
|
||||||
test3()
|
test3()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue