1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
if not modules then modules = { } end modules ['node-snp'] = {
version = 1.001,
comment = "companion to node-ini.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
if not nodes then
nodes = { } -- also loaded in mtx-timing
end
local snapshots = { }
nodes.snapshots = snapshots
local nodeusage = nodes.pool and nodes.pool.usage
local clock = os.gettimeofday or os.clock -- should go in environment
local lasttime = clock()
local samples = { }
local parameters = {
"cs_count",
"dyn_used",
"elapsed_time",
"luabytecode_bytes",
"luastate_bytes",
"max_buf_stack",
"obj_ptr",
"pdf_mem_ptr",
"pdf_mem_size",
"pdf_os_cntr",
-- "pool_ptr", -- obsolete
"str_ptr",
}
function snapshots.takesample(comment)
if nodeusage then
local c = clock()
local t = {
elapsed_time = c - lasttime,
node_memory = nodeusage(),
comment = comment,
}
for i=1,#parameters do
local parameter = parameters[i]
local ps = status[parameter]
if ps then
t[parameter] = ps
end
end
samples[#samples+1] = t
lasttime = c
end
end
function snapshots.getsamples()
return samples -- one return value !
end
function snapshots.resetsamples()
samples = { }
end
function snapshots.getparameters()
return parameters
end
|