From 768886566446f8b1aee39ab8b83d77a5f89b532d Mon Sep 17 00:00:00 2001 From: ccd0 Date: Sun, 16 Nov 2014 16:33:42 -0800 Subject: [PATCH] Profile post callbacks. --- src/General/Main.coffee | 6 ++++++ src/General/lib/callbacks.class | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/src/General/Main.coffee b/src/General/Main.coffee index ee10abd8f..6a3a6bbcb 100755 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -221,6 +221,12 @@ Main = while fn() continue unless nodes[i] + {runTime} = klass.callbacks + totalTime = 0 + for name in klass.callbacks.keys + c.log name, runTime[name] + totalTime += runTime[name] + c.log 'total', totalTime cb() if cb return setTimeout softTask, 0 diff --git a/src/General/lib/callbacks.class b/src/General/lib/callbacks.class index c8cdeec34..8a8430ced 100644 --- a/src/General/lib/callbacks.class +++ b/src/General/lib/callbacks.class @@ -1,6 +1,7 @@ class Callbacks constructor: (@type) -> @keys = [] + @runTime = {} push: ({name, cb}) -> @keys.push name unless @[name] @@ -9,7 +10,10 @@ class Callbacks execute: (node) -> for name in @keys try + @runTime[name] or= 0 + t1 = Date.now() @[name].call node + @runTime[name] += Date.now() - t1 catch err errors = [] unless errors errors.push