New option "setparms" for 'collectgarbage'
The generational mode also uses the parameters for the incremental mode in its major collections, so it should be easy to change those parameters without having to change the GC mode.
This commit is contained in:
1 parent
ad0ea7813b
commit
e2cc179454
13 files changed
+163
-78
No files matched your search
+7
-4
@@ -27,17 +27,20 @@ end
|
||||
|
||||
-- test weird parameters to 'collectgarbage'
|
||||
do
|
||||
collectgarbage("incremental")
|
||||
local opause = collectgarbage("setparam", "pause", 100)
|
||||
local ostepmul = collectgarbage("setparam", "stepmul", 100)
|
||||
local t = {0, 2, 10, 90, 500, 5000, 30000, 0x7ffffffe}
|
||||
for i = 1, #t do
|
||||
local p = t[i]
|
||||
collectgarbage("setparam", "pause", t[i])
|
||||
for j = 1, #t do
|
||||
local m = t[j]
|
||||
collectgarbage("incremental", p, m)
|
||||
collectgarbage("setparam", "stepmul", t[j])
|
||||
collectgarbage("step")
|
||||
end
|
||||
end
|
||||
-- restore original parameters
|
||||
collectgarbage("incremental", 200, 300)
|
||||
collectgarbage("setparam", "pause", opause)
|
||||
collectgarbage("setparam", "stepmul", ostepmul)
|
||||
collectgarbage()
|
||||
end
|
||||
|
||||
|
||||
+3
-2
@@ -163,14 +163,15 @@ assert(collectgarbage'isrunning')
|
||||
|
||||
|
||||
do print"testing stop-the-world collection"
|
||||
collectgarbage("incremental", nil, 0)
|
||||
local step = collectgarbage("setparam", "stepsize", 0);
|
||||
collectgarbage("incremental")
|
||||
|
||||
-- each step does a complete cycle
|
||||
assert(collectgarbage("step"))
|
||||
assert(collectgarbage("step"))
|
||||
|
||||
-- back to default value
|
||||
collectgarbage("incremental", nil, 200)
|
||||
collectgarbage("setparam", "stepsize", step);
|
||||
end
|
||||
|
||||
collectgarbage(oldmode)
|
||||
|
||||
Reference in new issue
Block a user