Rev 1422 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.profile");dojo.profile = {_profiles:{}, _pns:[], start:function (name) {if (!this._profiles[name]) {this._profiles[name] = {iters:0, total:0};this._pns[this._pns.length] = name;} else {if (this._profiles[name]["start"]) {this.end(name);}}this._profiles[name].end = null;this._profiles[name].start = new Date();}, end:function (name) {var ed = new Date();if ((this._profiles[name]) && (this._profiles[name]["start"])) {with (this._profiles[name]) {end = ed;total += (end - start);start = null;iters++;}} else {return true;}}, dump:function (appendToDoc) {var tbl = document.createElement("table");with (tbl.style) {border = "1px solid black";borderCollapse = "collapse";}var hdr = tbl.createTHead();var hdrtr = hdr.insertRow(0);var cols = ["Identifier", "Calls", "Total", "Avg"];for (var x = 0; x < cols.length; x++) {var ntd = hdrtr.insertCell(x);with (ntd.style) {backgroundColor = "#225d94";color = "white";borderBottom = "1px solid black";borderRight = "1px solid black";fontFamily = "tahoma";fontWeight = "bolder";paddingLeft = paddingRight = "5px";}ntd.appendChild(document.createTextNode(cols[x]));}for (var x = 0; x < this._pns.length; x++) {var prf = this._profiles[this._pns[x]];this.end(this._pns[x]);if (prf.iters > 0) {var bdytr = tbl.insertRow(true);var vals = [this._pns[x], prf.iters, prf.total, parseInt(prf.total / prf.iters)];for (var y = 0; y < vals.length; y++) {var cc = bdytr.insertCell(y);cc.appendChild(document.createTextNode(vals[y]));with (cc.style) {borderBottom = "1px solid gray";paddingLeft = paddingRight = "5px";if (x % 2) {backgroundColor = "#e1f1ff";}if (y > 0) {textAlign = "right";borderRight = "1px solid gray";} else {borderRight = "1px solid black";}}}}}if (appendToDoc) {var ne = document.createElement("div");ne.id = "profileOutputTable";with (ne.style) {fontFamily = "Courier New, monospace";fontSize = "12px";lineHeight = "16px";borderTop = "1px solid black";padding = "10px";}if (document.getElementById("profileOutputTable")) {dojo.body().replaceChild(ne, document.getElementById("profileOutputTable"));} else {dojo.body().appendChild(ne);}ne.appendChild(tbl);}return tbl;}};dojo.profile.stop = dojo.profile.end;