Created
September 25, 2014 16:45
-
-
Save vik0803/695aeb8d88fbfc504374 to your computer and use it in GitHub Desktop.
A tracer object to Titanium Mobile that helps you and shows elapsed time and memory usage
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var tracer = {}; | |
(function() { | |
tracer.levels = {}; | |
tracer.levels.DEBUG = 1; | |
tracer.levels.INFO = 2; | |
tracer.levels.WARN = 3; | |
tracer.levels.ERROR = 4; | |
tracer.levels.OFF = 5; | |
tracer.allTracers = []; | |
tracer.createTracer = function(name) { | |
var t = {}; | |
t.name = name; | |
t.startTimer = function(){ | |
t.startTime = (new Date()).valueOf(); | |
}; | |
t.resetMemory = function(){ | |
t.startMem = Ti.Platform.availableMemory; | |
}; | |
t.startTimer(); | |
t.resetMemory(); | |
function makeMsg( msg ){ | |
var dateTemp = new Date(); | |
var elapsed = dateTemp.valueOf() - t.startTime; | |
var currMem = Ti.Platform.availableMemory; | |
var avilableMem = Math.round(currMem) + 'mb'; | |
var deltaMem = Math.round(t.startMem - currMem) + 'mb'; | |
return( t.name + "\t" + elapsed + "\t" + avilableMem + "\t" + deltaMem + "\t" + msg ); | |
}; | |
t.level = tracer.levels.INFO; | |
t.setLevel = function(level) { | |
t.level = level; | |
}; | |
t.debug = function(msg) { | |
if( t.level <= tracer.levels.DEBUG ){ | |
Ti.API.debug(makeMsg(msg)); | |
} | |
}; | |
t.info = function(msg) { | |
if( t.level <= tracer.levels.INFO ){ | |
Ti.API.info(makeMsg(msg)); | |
} | |
}; | |
t.warn = function(msg) { | |
if( t.level <= tracer.levels.WARN ){ | |
Ti.API.warn(makeMsg(msg)); | |
} | |
}; | |
t.error = function(msg) { | |
if( t.level <= tracer.levels.ERROR ){ | |
Ti.API.error(makeMsg(msg)); | |
} | |
}; | |
tracer.allTracers.push(t); | |
return t; | |
}; | |
tracer.removeTracer = function( t ){ | |
var id = tracer.allTracers.indexOf( t ); | |
if( id > -1 ){ | |
tracer.allTracers.splice( id , 1 ); | |
} | |
}; | |
tracer.UI = {}; | |
})(); | |
// Example Usage: | |
var exampleTracer = tracer.createTracer('example'); | |
exampleTracer.setLevel( tracer.levels.INFO ); | |
exampleTracer.debug( "This won't show "); | |
exampleTracer.info( "This will show"); | |
// Do something that takes long | |
exampleTracer.startTimer(); | |
for( var i = 0 ; i < 1000000 ; i++ ){ | |
// Do something that takes a while | |
} | |
exampleTracer.info( "How long did it take?"); | |
exampleTracer.setLevel( tracer.levels.DEBUG ); | |
exampleTracer.startTimer(); | |
exampleTracer.resetMemory(); | |
var webExample = Ti.UI.createWebView({ | |
url: "http://www.apple.com" | |
}); | |
webExample.addEventListener('load', function(){ | |
exampleTracer.debug('web view load complete. How much memory did I use?'); | |
}); | |
Ti.UI.currentWindow.add( webExample ); | |
exampleTracer.debug( "done"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment