diff options
Diffstat (limited to 'tex/context/base/mkxl/node-snp.lmt')
-rw-r--r-- | tex/context/base/mkxl/node-snp.lmt | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/node-snp.lmt b/tex/context/base/mkxl/node-snp.lmt new file mode 100644 index 000000000..8c0237a5c --- /dev/null +++ b/tex/context/base/mkxl/node-snp.lmt @@ -0,0 +1,69 @@ +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 status = status + +local nodeusage = nodes.pool and nodes.pool.usage +local nodestock = nodes.pool and nodes.pool.stock +local clock = os.gettimeofday or os.clock -- should go in environment +local lasttime = clock() +local samples = { } + +function snapshots.takesample(comment) + if nodeusage then + local c = clock() + samples[#samples+1] = { + nodes = nodeusage(), + stock = nodestock(), + texcallbacks = status.getcallbackstate(), + mpcallbacks = mplib.getcallbackstate(), + backendcallbacks = backends.getcallbackstate(), + luavariables = status.getluastate(), + texvariables = status.gettexstate(), + comment = comment, + variables = { + lasttime = c, + elapsed = c - lasttime, + }, + memories = { + pool = status.getpoolstate(), + hash = status.gethashstate(), + lookup = status.getlookupstate(), + node = status.getnodestate(), + token = status.gettokenstate(), + buffer = status.getbufferstate(), + input = status.getinputstate(), + file = status.getfilestate(), + nest = status.getneststate(), + parameter = status.getparameterstate(), + save = status.getsavestate(), + expand = status.getexpandstate(), + read = status.getreadstate(), + font = status.getfontstate(), + language = status.getlanguagestate(), + mark = status.getmarkstate(), + sparse = status.getsparsestate(), + }, + } + end +end + +function snapshots.getsamples() + return samples -- one return value ! +end + +function snapshots.resetsamples() + samples = { } +end |