summaryrefslogtreecommitdiff
path: root/lua/timer.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/timer.lua')
-rw-r--r--lua/timer.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/lua/timer.lua b/lua/timer.lua
new file mode 100644
index 0000000..2c54ca8
--- /dev/null
+++ b/lua/timer.lua
@@ -0,0 +1,33 @@
+local Timer = nerv.class("nerv.Timer")
+
+function Timer:__init()
+ self.last = {}
+ self.rec = {}
+end
+
+function Timer:tic(item)
+ self.last[item] = os.clock()
+end
+
+function Timer:toc(item)
+ if (self.last[item] == nil) then
+ nerv.error("item not there")
+ end
+ if (self.rec[item] == nil) then
+ self.rec[item] = 0
+ end
+ self.rec[item] = self.rec[item] + os.clock() - self.last[item]
+end
+
+function Timer:check(item)
+ if self.rec[item]==nil then
+ nerv.error('item not there')
+ end
+ nerv.printf('"%s" lasts for %f secs.\n',item,self.rec[item])
+end
+
+function Timer:flush()
+ for key, value in pairs(self.rec) do
+ self.rec[key] = nil
+ end
+end