aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-10-28 14:05:59 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-10-28 14:05:59 -0700
commit1488cc47f25bd98ea897f56ac1cc096edf1d0da1 (patch)
tree946893d28d4d60b7e668456984cc68d6f860e0d3 /src
parentb8ffc3d9016fe2eef894a6957bbb90ab97d54691 (diff)
profiling option from C++
Diffstat (limited to 'src')
-rw-r--r--src/library.js30
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--;'
}
};