aboutsummaryrefslogtreecommitdiff
path: root/testes/gc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'testes/gc.lua')
-rw-r--r--testes/gc.lua29
1 files changed, 28 insertions, 1 deletions
diff --git a/testes/gc.lua b/testes/gc.lua
index 8bacffa0..c26de406 100644
--- a/testes/gc.lua
+++ b/testes/gc.lua
@@ -35,7 +35,7 @@ do
35 collectgarbage("setparam", "pause", t[i]) 35 collectgarbage("setparam", "pause", t[i])
36 for j = 1, #t do 36 for j = 1, #t do
37 collectgarbage("setparam", "stepmul", t[j]) 37 collectgarbage("setparam", "stepmul", t[j])
38 collectgarbage("step") 38 collectgarbage("step", t[j])
39 end 39 end
40 end 40 end
41 -- restore original parameters 41 -- restore original parameters
@@ -45,6 +45,33 @@ do
45end 45end
46 46
47 47
48--
49-- test the "size" of basic GC steps (whatever they mean...)
50--
51do print("steps")
52
53 local function dosteps (siz)
54 collectgarbage()
55 local a = {}
56 for i=1,100 do a[i] = {{}}; local b = {} end
57 local x = gcinfo()
58 local i = 0
59 repeat -- do steps until it completes a collection cycle
60 i = i+1
61 until collectgarbage("step", siz)
62 assert(gcinfo() < x)
63 return i -- number of steps
64 end
65
66 collectgarbage"stop"
67
68 if not _port then
69 assert(dosteps(10) < dosteps(2))
70 end
71
72end
73
74
48_G["while"] = 234 75_G["while"] = 234
49 76
50 77