diff options
Diffstat (limited to 'src/library.js')
-rw-r--r-- | src/library.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js index faa86c68..4d230bcc 100644 --- a/src/library.js +++ b/src/library.js @@ -5417,6 +5417,36 @@ LibraryManager.library = { EMSCRIPTEN_COMMENT__inline: function(param) { param = stripCorrections(param); return '// ' + Variables.globals[param].value.text.replace('\\00', '') + ' '; + }, + + $Profiling: { + max_: 0, + times: null, + invalid: 0, + dump: function() { + if (Profiling.invalid) { + print('Invalid # of calls to Profiling begin and end!'); + return; + } + print('Profiling data:') + for (var i = 0; i < Profiling.max_; i++) { + print('Block ' + i + ': ' + Profiling.times[i]); + } + } + }, + EMSCRIPTEN_PROFILE_INIT__deps: ['$Profiling'], + EMSCRIPTEN_PROFILE_INIT: function(max_) { + Profiling.max_ = max_; + Profiling.times = new Array(max_); + for (var i = 0; i < max_; i++) Profiling.times[i] = 0; + }, + EMSCRIPTEN_PROFILE_BEGIN__inline: function(id) { + return 'Profiling.times[' + id + '] -= Date.now();' + + 'Profiling.invalid++;' + }, + EMSCRIPTEN_PROFILE_END__inline: function(id) { + return 'Profiling.times[' + id + '] += Date.now();' + + 'Profiling.invalid--;' } }; |