2013-10-28 20:00:20 +00:00
// Copyright (C) 2013 Massachusetts Institute of Technology
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License version 2,
// as published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
/ *
* Timer for the interpeter and performance testing
* Tim Mickel , July 2011
* /
var Timer = function ( ) {
var trials = [ ] ;
var last _trial = 0 ;
var start _time = 0 ;
2013-11-01 22:44:51 -04:00
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . time = function ( ) {
2013-11-01 22:44:51 -04:00
return Date . now ( ) ;
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . start = function ( ) {
start _time = this . time ( ) ;
2013-11-01 22:44:51 -04:00
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . stop = function ( ) {
end = this . time ( ) ;
last _trial = end - start _time ;
trials . push ( last _trial ) ;
2013-11-01 22:44:51 -04:00
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . count = function ( ) {
return trials . length ;
2013-11-01 22:44:51 -04:00
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . average = function ( ) {
sum = 0 ;
2013-11-01 22:44:51 -04:00
for ( i = 0 ; i < this . count ( ) ; i ++ ) {
2013-10-28 20:00:20 +00:00
sum += trials [ i ] ;
}
return sum / this . count ( ) ;
2013-11-01 22:44:51 -04:00
} ;
2013-10-28 20:00:20 +00:00
Timer . prototype . print = function ( element ) {
2013-11-01 22:44:51 -04:00
text = "Trial: " + last _trial + "ms" +
2013-10-28 20:00:20 +00:00
"<br />\nTrials: " + this . count ( ) + ", Avg: " + this . average ( ) + "ms" ;
2013-11-01 22:44:51 -04:00
if ( element ) {
2013-10-28 20:00:20 +00:00
$ ( element ) . html ( text ) ;
} else {
console . log ( text ) ;
}
2013-11-01 22:44:51 -04:00
} ;