diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-10-28 14:05:59 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-10-28 14:05:59 -0700 |
commit | 1488cc47f25bd98ea897f56ac1cc096edf1d0da1 (patch) | |
tree | 946893d28d4d60b7e668456984cc68d6f860e0d3 /src | |
parent | b8ffc3d9016fe2eef894a6957bbb90ab97d54691 (diff) |
profiling option from C++
Diffstat (limited to 'src')
-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--;' } }; |