2008-02-06 * index.html: added link to changes log 2007-11-05 * benchmark.js: really compute "performance speed difference" for BOTH sides * benchmark.js: force "one at a time" (nATime=1) if (before|after)Test trigger is provided AND user didn't declare "he knows better" (declaring a value for nATime) 2007-10-21 * t/array-filling.html, t/camelize.html, t/createNElements.html, t/createOneElement.html, t/domquery.html, t/escapeHTML.html, t/isin.html, t/jsref.js, t/looping.html, t/loops.html, t/repeat.html, t/setStyle.html, t/split-fancy.html, t/split.html, t/strip.html, creator.html: relative JS (only for "internal" packs) * index.html: HTML code fixes 2007-09-05 * benchmark_htmlish.js: display a "spikes" column when error control is enabled * benchmark.js, index.html: compute "best" ASAP (while determining "nATime" value) in order to make "spike" control behave better * benchmark.js, benchmark_firebug.js, benchmark_htmlish.js, benchmark_jsref.js, benchmark_perlish.js, index.html: - implemented some cheap error control system (spikes filtering); - "data" is an ad-hoc object (again); - cumulative behaviour (re-runs will add-up to previous results); - slight refactoring (backward compatible as much as possible). * creator_form.html: "spikes" control * benchmarker.html: ToDo update * t/jsref.js: some nifty JSRef responders test 2007-09-04 * benchmark.js, benchmark_firebug.js, benchmark_htmlish.js, benchmark_jsref.js, benchmark_perlish.js: use Benchmark.toString() everywhere 2007-09-02 * benchmarker.html: ToDo update * t/array-filling.html, benchmarker.html: array populating speed ("push" vs "pre-initialization") * t/strip.html: added a "noRE" method - uuuugly 2007-04-21 * benchmark_htmlish.js, style.css, benchmarker.html, index.html, benchmarker.js: new feature: allow single method re-run * benchmark.js, index.html: new feature: allow single method re-run * benchmarker.js: Benchmarker.QRunner: restore hijacked "atEnd" after Benchmark run (fixing "rerun") 2007-04-20 * benchmark_htmlish.js, style.css: - added "rerun" controller; - smoother "speed bar" layout; - added "nATime" column; - added "noEffects" option; * benchmark.js, index.html: allow object reuse: easy re-run using "run" method * benchmark.js, index.html, t/camelize.html, t/createOneElement.html, t/isin.html, t/looping.html, t/loops.html, t/repeat.html, t/split-fancy.html, t/strip.html: - automatic "best" nATime value setup (OK, I'm sure it's not the best, but it works.. at least for a first version); - changed default "nATime" value to 0 (to use automatic detection); - made "nATime" configurable for each to-be-benchmarked function; - changed default "iterations" value to -0.2 (longer, but not quite); - refactorized initial start into a "run" method (prototyping a future object reuse feature); - documentation updates. * benchmark_perlish.js, benchmark_jsref.js: always use 3 digits precision for best/worst/avg; added "nATime" (x=XXX) to output * benchmarker.html: ToDo update * benchmark_firebug.js: *always* load it 2007-04-19 * benchmark_jsref.html, benchmark_jsref.js, index.html: forged a JSRef (SpiderMonkey) responders suite * index.html: fixed perlish link 2007-04-02 * benchmark_firebug.html, benchmark_firebug.js, benchmarker.js, index.html: Firebug responders suite * benchmarker.js: moved Perlish into separate file * benchmark.js, benchmark_htmlish.html, benchmark_perlish.html, benchmark_perlish.js, benchmarker.js, index.html, t/escapeHTML.html, t/setStyle.html, t/split.html: moved Perlish into separate file * benchmarker.html, style.css: docs updates * benchmarker.js, creator.html, creator_form.html, t/camelize.html, t/createNElements.html, t/createOneElement.html, t/domquery.html, t/isin.html, t/looping.html, t/loops.html, t/repeat.html, t/split-fancy.html, t/strip.html: better defaults * index.html, benchmarker.html: todo block * t/: createOneElement.html, isin.html, repeat.html, strip.html: better default options * benchmarker.js: VERSION update * benchmarker.html, benchmarker.js, t/isin.html, t/looping.html, t/loops.html, t/split-fancy.html, t/strip.html: changed default "editOptions" to "true" * benchmarker.html, benchmarker.js, creator.html, creator_form.html: 2-stage for "options" editing ("editOptions" and "editHandlers") * benchmarker.html: highlighting tweaks (JS in HTML) 2007-04-01 * benchmark_htmlish.html, benchmarker.html, index.html: loooooootta more documentation (yet much more is to be written) :( * style.css: more visual cues * creator.html, t/camelize.html, t/loops.html, t/split-fancy.html: better options * benchmarker.js, creator_form.html: better (hopefully) defaults for input/textarea layouts * benchmark_htmlish.js: NAME/VERSION/REVISION; optional Effects; always set a table caption; add visual cue for possible benchmarking errors * benchmark.js: NAME/VERSION/REVISION (for Perlish) 2007-03-31 * benchmarker.js: more effort trying to obtain a "readable" source block * benchmark.js, benchmark_htmlish.js, creator_form.html: implemented "nATime" functionality * benchmarker.js: safer approach on escaping HTML code * benchmark.js, creator_form.html: renamed "maxRunTime" to "runCaps" * benchmark.js, creator_form.html: dropped "pause" (use "cooldown" everywhere) * benchmark_compressed.js: bullshit; WONT maintain it * benchmarker.js: NAME/VERSION/REVISION * benchmark.js: NAME/VERSION/REVISION * benchmark.js: NAME/VERSION/REVISION 2007-03-28 * t/createNElements.html: more tests * index.html, t/repeat.html: String#repeat test * benchmarker.js: Opera friendly * benchmarker.js, t/createNElements.html, t/createOneElement.html: IE friendly * index.html, t/createNElements.html, t/createOneElement.html: create DOM elements tests 2007-02-18 * t/camelize.html: use "indexOf" * t/camelize.html: String.camelize() bench * benchmarker.js: linkify ;-) * benchmarker.html, benchmarker.js, index.html, style.css: Benchmarker documentation (prototyping) * t/isin.html: "is in" bench * benchmarker.js: isolated "source" method * index.html, t/domquery.html: various "DOM query" methods benchmarking * benchmarker.js, t/loops.html, t/strip.html: parallel/serial benchmark runners * benchmark_htmlish.js, style.css: caption for HTMLish output * benchmark.js: title for Perlish output 2007-02-17 * t/looping.html: added mishoo's version * benchmarker.js: allow inline javascript code to be passed inside "scripts" option (by using an Array * index.html, t/loops.html, t/split-fancy.html: more "fancy" examples * benchmarker.js: (auto)scroll no more ;-) * benchmark.js, benchmark_htmlish.js: handle code exceptions gracefully * benchmarker.js, creator_form.html, style.css: - added "preparation code" (option: "setup"); - smoother "action buttons". 2007-02-16 * benchmarker.js, creator_form.html: added full editing toggling mode * style.css, benchmarker.js: added Sheet support * benchmark_htmlish.js: - added Sheet support - added Effect.Highlight support 2007-02-15 * t/looping.html, t/strip.html, benchmarker.js, creator_form.html, index.html, style.css: Benchmarker :) * benchmark_creator.js, benchmarker.js, creator.html, creator_form.html, style.css: Benchmarker :) 2007-02-09 * benchmark.js, benchmark_creator.js, creator.html, index.html, t/escapeHTML.html, t/looping.html, t/loops.html, t/setStyle.html: more events 2007-02-08 * benchmark_creator.js, benchmark_htmlish.js, creator.html: added "responders" support * benchmark_htmlish.js, index.html, style.css: HTMLish Responders suite * benchmark.js: compute average speed too * benchmark.js, benchmark_creator.js, index.html, t/escapeHTML.html, t/looping.html, t/loops.html, t/setStyle.html, t/split.html, t/strip.html: - changed calling syntax: new Benchmark(functions, options); - lotta code refactorization (yes, again); - dropped "this.names", "this.methods", "this.currentIndex", "this.currentMethod", etc and switched to a single data structure: "this.data" (with its "this.current" friend); - dropped "output", refactorized into Benchmark.Responders; - more, more, more documentation * benchmark.js: dropped "namesRated", switched to "methodsByRate" * benchmark.js: More refactorization: - dropped "this.current" (using "this.currentMethod" and "this.currentIndex"); - "this.results" is now a Hash; - every output signal is handled asynchronously; - pass "this.currentMethod" ("current method name") to appropriate output signals ("start", "chill", "resume", "end"); - more efficient results "comparison" computations; ... 2007-02-07 * benchmark.js, style.css: HEAVY code refactorization! * benchmark.js, benchmark_compressed.js: another step towards the greater light ;-) 2007-02-06 * benchmark.js: converted "results" to an Array of Hashes * benchmark.js, benchmark_creator.js, index.html, t/escapeHTML.html, t/looping.html, t/setStyle.html: - this.methods is no longer mutated into an Array; - allow float numbers for this.iterations (useful for time limited benchmarking); - tiny refactoring: enhanced this.current attributes (dropped "method", added "name" and "idx"); - initialize "prepare" and "cleanup" to "identity" function and dropped their conditional execution; (more to come soon: still working on refactoring the "output" system) * benchmark_creator.js: do not validate "iterations" as positive integer (let Benchmark handle invalid values) 2007-02-05 * t/: escapeHTML.html, looping.html, loops.html, setStyle.html, split.html, strip.html: use "minimum running time" mode by default * benchmark.js, index.html, style.css, t/looping.html: - refactorization: do not use local variables for keeping current status, use "this.current" instead; - implemented a "minimum running time" benchmarking mode. 2007-01-26 * benchmark_compressed.js: jsmin version * index.html: javascript syntax highlighter 2007-01-10 * benchmark_creator.js, creator.html: moved out js code 2007-01-08 * benchmark.js: - tidier code (more comments, cleaner variables names, etc); - made JSON results (numeric values) look more similar to those "plain text". * creator.html: load JSON module (to show JSON results too) * benchmark.js, creator.html, index.html, t/escapeHTML.html, t/loops.html, t/setStyle.html, t/split.html, t/strip.html: - changed "samples" to "iterations" (sounds more inteligible); - plugged an "eol" parameter to properly "dump" results (MSIE wants "\r\n", all others need only the usual "\n"); - gather JSON formatted results into "resultsJSON" property (it will be dumped at the end of "text results" if JSON module is loaded); - changed startup delay to be the "cooldown" (avoiding the arbitrary "100"); - dropped the "skip_rest" cruft (from "cmpResults"). 2007-01-07 * benchmark.js, index.html: dropped Function.bind (using our "delay") * benchmark.js: avoid another "infinite" exception * benchmark.js: stable methods names sorting (to avoid KHTML divergences) * t/escapeHTML.html: made our most optimized version look exactly as it is to be submitted upstream 2007-01-06 * t/escapeHTML.html: - change text after each test (adding/changing trailing digits) - dropped escaping """ - changed default iterations number to "10000" - added new method: "escapeHTMLOneDiv2" (caching the TextNode too) * t/escapeHTML.html: new method: "String.replaceMap" 2007-01-05 * t/escapeHTML.html: fix for KHTML JS engine :( * benchmark.js, index.html, t/escapeHTML.html: escapeHTML benchmark 2006-12-25 * style.css: more twisting 2006-12-06 * index.html: see also * index.html: proper homepage :)) * creator.html: benchmark creator tool * t/loops.html, t/setStyle.html, t/split.html, t/strip.html, style.css: style updates * benchmark.js: documentation updates 2006-12-03 * t/strip.html: Strip strip tests * t/loops.html: use Number.range 2006-12-02 * t/: loops.html, setStyle.html, split.html: proper link (to the current builder... maybe a future "description"?) 2006-12-01 * benchmark.js: more docs * benchmark.js: more docs * benchmark.js: output fine tuning * index.html: elastic fields 2006-11-30 * benchmark.js, index.html: interactive benchmark builder * benchmark.js: another Infinity check * benchmark.js: - documentation - dropped dependency on "sprintf" * benchmark.js: play smarter with "arguments" 2006-11-29 * benchmark.js: toggle _toContinue when appropriate * t/loops.html: "for" loop vs "Enumerable.each" benchmark 2006-11-28 * benchmark.js, t/split.html: standalone implementation * benchmark.js: improved benchmarking sequence, allowing pause/resume (avoiding browser caps) * t/setStyle.html: raised default iterations * benchmark.js, t/setStyle.html, t/split.html: Class version, ASYNCHRONOUS benchmarking, etc. HYPER! :)) * benchmark.js: better prepare/cleanup system (on each and every iteration) 2006-11-27 * t/setStyle.html: even simpler * t/setStyle.html: - optional test data cleanup - function (vs method) "setStyleText" and "setStyleLite" * t/setStyle.html: - better benchmark method names - dropped plainMultiple (it's too similar to setStyle) * benchmark.js, t/setStyle.html: baked a "simple" frontend for running benchmarks: Benchmark.run(options) * benchmark.js: added license * benchmark.js: titleLength * t/setStyle.html: added plainSingle and plainMultiple * benchmark.js: show navigator * t/: setStyle.html, split.html: IE friendly dumper * t/setStyle.html: Prototype Element.setStyle benchmarks 2006-11-12 * benchmark.js, t/split.html: Benchmark class