diff options
Diffstat (limited to 'tex/context/base/mkiv/node-snp.lua')
-rw-r--r-- | tex/context/base/mkiv/node-snp.lua | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/node-snp.lua b/tex/context/base/mkiv/node-snp.lua new file mode 100644 index 000000000..31c7771ac --- /dev/null +++ b/tex/context/base/mkiv/node-snp.lua @@ -0,0 +1,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 |