sql.js vs alasql.js

JavaScript performance comparison

Revision 32 of this test case created by Tomasz Kunicki

Preparation code

<script src="//cdn.jsdelivr.net/alasql/0.2/alasql.min.js"></script>
<script src="//kripken.github.io/sql.js/js/sql.js"></script>



      
<script>
Benchmark.prototype.setup = function() {
  var NUM_TESTS = 1000;
  
  // Generate SQL statements
  var sqls = [
    'DROP TABLE IF EXISTS test1',
    'DROP TABLE IF EXISTS test2',
    'CREATE TABLE test1 (one INT, two INT)',
    'CREATE TABLE test2 (two INT, three INT)'
  ];
  
  for (var i = 0; i < NUM_TESTS; i++) {
    sqls.push('INSERT INTO test1 VALUES (' + i % 10 + ',' + ((i * i) % 10) + ')');
    sqls.push('INSERT INTO test2 VALUES (' + i % 10 + ',' + ((i * i) % 10) + ')');
  }
  
  // Prepare SQL.JS database
  var sdb = new SQL.Database();
  sqls.forEach(function(sql) {
    sdb.exec(sql);
  });
  
  // Prepare ALASQL.JS database
  
  var adb = new alasql.Database();
  sqls.forEach(function(sql) {
    adb.exec(sql);
  });
  
  // Complex query
  var query = 'SELECT SUM(test1.one) AS sumone, test1.two, test2.three FROM test1 JOIN test2 ON test1.two = test2.two WHERE test1.one > 5 GROUP BY test1.two, test2.three ORDER BY three, sumone';

};
</script>

Preparation code output

<script src="//kripken.github.io/sql.js/js/sql.js"></script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL.

0 Comments