Skip to content

mnoble/Benchmark.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Benchmark.js is a small utility to run JavaScript benchmarks. It’s based on Ruby’s Benchmark module. A lot of the stuff below isn’t completely implemented and/or doesn’t work at all.

Copy all the files from lib/ into public/javascript/benchmark' or where ever your JavaScript files go.

Benchmark.js has one main method Benchmark.benchmark() aliased to Benchmark.bm(); I told you it’s based on Ruby’s Benchmark :)

If you want to use a custom console or output object you can specify it with stdout. This is useful when testing, using a custom console like Blackbird or if you want to send the results somewhere.

Benchmark.initialize({ stdout: log })

where log is the output object. The output object must implement the following methods

log   => General purpose debugging or logging
warn  => For warnings
error => When throwing an error
Benchmark.benchmark(function() {
  for (i = 0; i < 10000000; i++) { }
});

Outputs:

(  7.644)
Benchmark.benchmark("Iterate 10,000,000 times", function() {
  for (i = 0; i < 10000000; i++) { }
});

Outputs:

Iterate 10,000,000 times: (   7.149000)
Benchmark.benchmark(1000000, function() {
  var foo = "something";
});

Outputs:

(   7.149)
Benchmark.benchmark('One million times', 1000000, function() {
  var foo = "something";
});

Outputs:

One million times: (   7.149)
group = { toSource : function() { Object.toSource(); },
          toString : function() { 123456.toString(); }}
Benchmark.benchmark(group)

Outputs:

-----------------------
toSource: (   0.123000)
toString: (   1.712000)
------- total: 1.835000

In this case the name of each function becomes the label for that measurement. You can add spaces to the name with underscores: test_something_awesome becomes "test something awesome". To intentially use an underscore, use two: i__love__underscores becomes "i_love_underscores".

           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                   Version 2, December 2004

Copyright (C) 2009 Matte Noble
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

           DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

About

Simple benchmarking utility for JavaScript, based on Ruby's Benchmark module.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published