Add in a test for testing the performance of event handling.
authorjeresig <jeresig@gmail.com>
Fri, 5 Feb 2010 03:43:23 +0000 (22:43 -0500)
committerjeresig <jeresig@gmail.com>
Fri, 5 Feb 2010 03:43:23 +0000 (22:43 -0500)
speed/event.html [new file with mode: 0644]

diff --git a/speed/event.html b/speed/event.html
new file mode 100644 (file)
index 0000000..6d463b4
--- /dev/null
@@ -0,0 +1,58 @@
+<!doctype html>
+<html>
+<head>
+       <title>Test Event Handling Performance</title>
+       <script src="benchmark.js"></script>
+       <script src="jquery-basis.js"></script>
+       <script>var old = jQuery.noConflict(true);</script>
+       <script src="../dist/jquery.js"></script>
+       <script>
+       jQuery(function(){
+       
+       });
+
+       var events = [], num = 400, exec = false;
+
+       jQuery(document).mousemove(function(e){
+               if ( exec ) {
+                       return;
+               }
+
+               if ( events.length >= num ) {
+                       exec = true;
+                       var s = (new Date).getTime();
+
+                       for ( var n = 0; n < 5; n++ ) {
+                               for ( var i = 0; i < num; i++ ) {
+                                       old.event.handle.call( document, events[i] );
+                               }
+                       }
+
+                       var oldNum = (new Date).getTime() - s;
+
+                       s = (new Date).getTime();
+
+                       for ( var n = 0; n < 5; n++ ) {
+                               for ( var i = 0; i < num; i++ ) {
+                                       jQuery.event.handle.call( document, events[i] );
+                               }
+                       }
+
+                       var curNum = (new Date).getTime() - s;
+
+                       jQuery("#num").text( old.fn.jquery + ": " + oldNum + " " + jQuery.fn.jquery + ": " + curNum );
+
+                       jQuery(this).unbind( "mousemove", e.handler );
+
+               } else {
+                       events.push( e.originalEvent );
+                       jQuery("#num").text( events.length + " / " + num );
+               }
+       });
+       </script>
+</head>
+<body>
+       <p>Move the mouse, please!</p>
+       <p id="num"></p>
+</body>
+</html>