Benchmark name | When Created |
---|---|
javascript join | 8 years ago |
Observables: loops versus EventTarget (3 listeners)
When the “observable” pattern is implemented in JavaScript, it's practically always done using a loop over callbacks. One problem with this approach is that an exception in one handler will crash the entire loop. You can work around this by wrapping the invocation in a try/catch block, but in doing so, you silently swallow the error. The browser provides an event dispatcher for DOM elements that runs each handler in a separate execution context, providing a better failure mode for independent listeners. `EventTarget` is an interface, so you can't directly instantiate one. But you can hijack the `EventTarget` implementation from a dummy object. This test compares multi-listener dispatches using loops and the built-in `EventTarget`. My expectation is that the native mechanism will carry some overhead, partly because of the bespoke execution context, and partly because of the extra properties instantiated on each `CustomEvent` instance. This method also has to look up events by their (string) names, rather than using direct object reference. See http://dean.edwards.name/weblog/2009/03/callbacks-vs-events/ |
8 years ago |
Observables: loops versus EventTarget
When the “observable” pattern is implemented in JavaScript, it's practically always done using a loop over callbacks. One problem with this approach is that an exception in one handler will crash the entire loop. You can work around this by wrapping the invocation in a try/catch block, but in doing so, you silently swallow the error. The browser provides an event dispatcher for DOM elements that runs each handler in a separate execution context, providing a better failure mode for independent listeners. `EventTarget` is an interface, so you can't directly instantiate one. But you can hijack the `EventTarget` implementation from a dummy object. This test compares multi-listener dispatches using loops and the built-in `EventTarget`. My expectation is that the native mechanism will carry some overhead, partly because of the bespoke execution context, and partly because of the extra properties instantiated on each `CustomEvent` instance. This method also has to look up events by their (string) names, rather than using direct object reference. See http://dean.edwards.name/weblog/2009/03/callbacks-vs-events/ |
8 years ago |
innerHTML vs removeChild | 8 years ago |
Array .push() vs .unshift() | 8 years ago |
Array .push() vs .unshift() | 8 years ago |
Object Composition vs Instantiation | 8 years ago |
Array Remove vs String Replace | 8 years ago |
Try-Catch Loop | 8 years ago |
Try-Catch Loop | 8 years ago |
Arrays vs Objects | 8 years ago |
Local scope vs outer scope variables (fixed)
Cache variable in the function scope |
8 years ago |
Local scope vs outer scope variables
Cache variable in the function scope |
8 years ago |
Which equals operator (== vs ===) is faster?
Is there a performance benefit to replacing == with ===? |
8 years ago |
Demo benchmark as guest user | 8 years ago |
regex test
Test |
8 years ago |
regex test
Test |
8 years ago |
Dummy Test | 8 years ago |
forEach vs for vs Query each vs for of
with <link> |
8 years ago |
forEach vs for vs Query each
with <link> |
8 years ago |
forEach vs for vs Query each
with <link> |
8 years ago |
forEach vs jQuery each
with <link> |
8 years ago |
Array filter vs. for loop - with for in 2
This version declares i once before |
8 years ago |
Array filter vs. for loop - with for in | 8 years ago |
Array filter vs. for loop (fixed really really) | 8 years ago |