X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=blobdiff_plain;f=build%2Fspeed%2Fbenchmarker.js;fp=build%2Fspeed%2Fbenchmarker.js;h=0000000000000000000000000000000000000000;hp=bfcc16ed98379d586fc30250cc2e6e6db1fdf9e2;hb=c7006d2fa54ee66cc0fa413aabe157a0248673e0;hpb=04ab7944102f99896a0662becf8e838fb9112412 diff --git a/build/speed/benchmarker.js b/build/speed/benchmarker.js deleted file mode 100755 index bfcc16e..0000000 --- a/build/speed/benchmarker.js +++ /dev/null @@ -1,181 +0,0 @@ - jQuery.benchmarker.tests = [ - // Selectors from: - // http://ejohn.org/blog/selectors-that-people-actually-use/ - /* - // For Amazon.com - "#navAmazonLogo", "#navSwmSkedPop", - ".navbar", ".navGreeting", - "div", "table", - "img.navCrossshopTabCap", "span.navGreeting", - "#navbar table", "#navidWelcomeMsg span", - "div#navbar", "ul#navAmazonLogo", - "#navAmazonLogo .navAmazonLogoGatewayPanel", "#navidWelcomeMsg .navGreeting", - ".navbar .navAmazonLogoGatewayPanel", ".navbar .navGreeting", - "*", - "#navAmazonLogo li.navAmazonLogoGatewayPanel", "#navidWelcomeMsg span.navGreeting", - "a[name=top]", "form[name=site-search]", - ".navbar li", ".navbar span", - "[name=top]", "[name=site-search]", - "ul li", "a img", - "#navbar #navidWelcomeMsg", "#navbar #navSwmDWPop", - "#navbar ul li", "#navbar a img" - */ - // For Yahoo.com - "#page", "#masthead", "#mastheadhd", - ".mastheadbd", ".first", ".on", - "div", "li", "a", - "div.mastheadbd", "li.first", "li.on", - "#page div", "#dtba span", - "div#page", "div#masthead", - "#page .mastheadbd", "#page .first", - ".outer_search_container .search_container", ".searchbox_container .inputtext", - "*", - "#page div.mastheadbd", "#page li.first", - "input[name=p]", "a[name=marketplace]", - ".outer_search_container div", ".searchbox_container span", - "[name=p]", "[name=marketplace]", - "ul li", "form input", - "#page #e2econtent", "#page #e2e" - ]; - - jQuery.fn.benchmark = function() { - this.each(function() { - try { - jQuery(this).parent().children("*:gt(1)").remove(); - } catch(e) { } - }) - // set # times to run the test in index.html - var times = parseInt(jQuery("#times").val()); - jQuery.benchmarker.startingList = this.get(); - benchmark(this.get(), times, jQuery.benchmarker.libraries); - } - - jQuery(function() { - for(i = 0; i < jQuery.benchmarker.tests.length; i++) { - jQuery("tbody").append("" + jQuery.benchmarker.tests[i] + ""); - } - jQuery("tbody tr:first-child").remove(); - jQuery("td.test").before(""); - jQuery("button.runTests").bind("click", function() { - jQuery('td:has(input:checked) + td.test').benchmark(); - }); - - jQuery("button.retryTies").bind("click", function() { jQuery("tr:has(td.tie) td.test").benchmark() }) - - jQuery("button.selectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = true }) }) - jQuery("button.deselectAll").bind("click", function() { jQuery("input[type=checkbox]").each(function() { this.checked = false }) }) - - jQuery("#addTest").bind("click", function() { - jQuery("table").append(""); - jQuery("div#time-test > button").each(function() { this.disabled = true; }) - jQuery("tbody tr:last button").bind("click", function() { - var td = jQuery(this).parent(); - td.html("" + jQuery(this).prev().val()).addClass("test"); - jQuery("div#time-test > button").each(function() { this.disabled = false; }) - jQuery("button", td).bind("click", function() { jQuery(this).parents("tr").remove(); }) - }) - }) - - var headers = jQuery.map(jQuery.benchmarker.libraries, function(i,n) { - var extra = n == 0 ? "basis - " : ""; - return "" + extra + i + "" - }).join(""); - - jQuery("thead tr").append(headers); - - var footers = ""; - for(i = 0; i < jQuery.benchmarker.libraries.length; i++) - footers += "" - - var wlfooters = ""; - for(i = 0; i < jQuery.benchmarker.libraries.length; i++) - wlfooters += "W / F" - - jQuery("tfoot tr:first").append(footers); - jQuery("tfoot tr:last").append(wlfooters); - - }); - - benchmark = function(list, times, libraries) { - if(list[0]) { - var times = times || 50; - var el = list[0]; - var code = jQuery(el).text().replace(/^-/, ""); - var timeArr = [] - for(i = 0; i < times + 2; i++) { - var time = new Date() - try { - window[libraries[0]](code); - } catch(e) { } - timeArr.push(new Date() - time); - } - var diff = Math.sum(timeArr) - Math.max.apply( Math, timeArr ) - - Math.min.apply( Math, timeArr ); - try { - var libRes = window[libraries[0]](code); - var jqRes = jQuery(code); - if(((jqRes.length == 0) && (libRes.length != 0)) || - (libRes.length > 0 && (jqRes.length == libRes.length)) || - ((libraries[0] == "cssQuery" || libraries[0] == "jQuery") && code.match(/nth\-child/) && (libRes.length > 0)) || - ((libraries[0] == "jQold") && jqRes.length > 0)) { - jQuery(el).parent().append("" + Math.round(diff / times * 100) / 100 + "ms"); - } else { - jQuery(el).parent().append("FAIL"); - } - } catch(e) { - jQuery(el).parent().append("FAIL"); - } - setTimeout(benchmarkList(list, times, libraries), 100); - } else if(libraries[1]) { - benchmark(jQuery.benchmarker.startingList, times, libraries.slice(1)); - } else { - jQuery("tbody tr").each(function() { - var winners = jQuery("td:gt(1)", this).min(2); - if(winners.length == 1) winners.addClass("winner"); - else winners.addClass("tie"); - }); - setTimeout(count, 100); - } - } - - function benchmarkList(list, times, libraries) { - return function() { - benchmark(list.slice(1), times, libraries); - } - } - - function count() { - for(i = 3; i <= jQuery.benchmarker.libraries.length + 2 ; i++) { - var fails = jQuery("td:nth-child(" + i + ").fail").length; - var wins = jQuery("td:nth-child(" + i + ").winner").length; - jQuery("tfoot tr:first th:eq(" + (i - 1) + ")") - .html("" + wins + " / " + fails + ""); - } - } - - - jQuery.fn.maxmin = function(tolerance, maxmin, percentage) { - tolerance = tolerance || 0; - var target = Math[maxmin].apply(Math, jQuery.map(this, function(i) { - var parsedNum = parseFloat(i.innerHTML.replace(/[^\.\d]/g, "")); - if(parsedNum || (parsedNum == 0)) return parsedNum; - })); - return this.filter(function() { - if( withinTolerance(parseFloat(this.innerHTML.replace(/[^\.\d]/g, "")), target, tolerance, percentage) ) return true; - }) - } - - jQuery.fn.max = function(tolerance, percentage) { return this.maxmin(tolerance, "max", percentage) } - jQuery.fn.min = function(tolerance, percentage) { return this.maxmin(tolerance, "min", percentage) } - - function withinTolerance(number, target, tolerance, percentage) { - if(percentage) { var high = target + ((tolerance / 100) * target); var low = target - ((tolerance / 100) * target); } - else { var high = target + tolerance; var low = target - tolerance; } - if(number >= low && number <= high) return true; - } - - Math.sum = function(arr) { - var sum = 0; - for(i = 0; i < arr.length; i++) sum += arr[i]; - return sum; - }