@@ -23,37 +23,47 @@ console.log('Generating tables...');
2323
2424var createdCount = 0 ;
2525function created ( ) {
26- if ( ++ createdCount === 2 ) {
26+ if ( ++ createdCount === 8 ) {
2727 console . log ( clc . magenta ( '--- Benchmarks ---' ) ) ;
2828 next ( ) ;
2929 }
3030}
3131
32- require ( './create-table' ) ( 'CREATE TABLE entries (aaaa TEXT, bbbb INTEGER, cccc FLOAT, dddd TEXT, eeee INTEGER, ffff BLOB)' , 'select-db' , function ( ourDb , theirDb ) {
33- var values = [
34- 'John Smith' ,
35- 524 ,
36- 0.324176234 ,
37- 'New York City' ,
38- 20 ,
39- Buffer . alloc ( 1024 * 1024 ) . fill ( 0xdd )
40- ] ;
32+ require ( './create-table' ) ( 'CREATE TABLE entries (text TEXT, integer INTEGER, real REAL, blob BLOB, nul)' , 'select-small' , fillSmallDataTable ) ;
33+ require ( './create-table' ) ( 'CREATE TABLE entries (text TEXT, blob BLOB)' , 'select-large' , function ( ourDb , theirDb ) {
34+ var bigString = '' ;
35+ while ( bigString . length < 1024 * 1024 ) {
36+ bigString += 'John Peter Smith' ;
37+ }
38+ var values = {
39+ a : bigString ,
40+ b : Buffer . alloc ( 1024 * 1024 ) . fill ( 0xdd )
41+ } ;
4142 var filledCount = 0 ;
4243 function filled ( ) { ++ filledCount === 2 && created ( ) ; }
43- require ( './fill-table' ) ( ourDb , 1000 , 'INSERT INTO entries VALUES (?, ?, ?, ?, ?, ? )' , values , filled ) ;
44- require ( './fill-table' ) ( theirDb , 1000 , 'INSERT INTO entries VALUES (?, ?, ?, ?, ?, ? )' , values , filled ) ;
44+ require ( './fill-table' ) ( ourDb , 1000 , 'INSERT INTO entries VALUES (@a, @b )' , values , filled ) ;
45+ require ( './fill-table' ) ( theirDb , 1000 , 'INSERT INTO entries VALUES (@a, @b )' , values , filled ) ;
4546} ) ;
46- require ( './create-table' ) ( 'CREATE TABLE entries (name TEXT, number INTEGER, data BLOB)' , 'insert-db' , function ( ourDb , theirDb ) {
47- var values = [
48- 'John Smith' ,
49- 524 ,
50- null
51- ] ;
47+ require ( './create-table' ) ( 'CREATE TABLE entries (data TEXT)' , 'insert-text' , created ) ;
48+ require ( './create-table' ) ( 'CREATE TABLE entries (data INTEGER)' , 'insert-integer' , created ) ;
49+ require ( './create-table' ) ( 'CREATE TABLE entries (data REAL)' , 'insert-real' , created ) ;
50+ require ( './create-table' ) ( 'CREATE TABLE entries (data BLOB)' , 'insert-blob' , created ) ;
51+ require ( './create-table' ) ( 'CREATE TABLE entries (data)' , 'insert-null' , created ) ;
52+ require ( './create-table' ) ( 'CREATE TABLE entries (text TEXT, integer INTEGER, real REAL, blob BLOB, nul)' , 'real-world' , fillSmallDataTable ) ;
53+
54+ function fillSmallDataTable ( ourDb , theirDb ) {
55+ var values = {
56+ a : 'John Peter Smith' ,
57+ b : 12345 ,
58+ c : 0.12345 ,
59+ d : Buffer . alloc ( 16 ) . fill ( 0xdd ) ,
60+ e : null
61+ } ;
5262 var filledCount = 0 ;
5363 function filled ( ) { ++ filledCount === 2 && created ( ) ; }
54- require ( './fill-table' ) ( ourDb , 1000 , 'INSERT INTO entries VALUES (?, ?, ? )' , values , filled ) ;
55- require ( './fill-table' ) ( theirDb , 1000 , 'INSERT INTO entries VALUES (?, ?, ? )' , values , filled ) ;
56- } ) ;
64+ require ( './fill-table' ) ( ourDb , 1000 , 'INSERT INTO entries VALUES (@a, @b, @c, @d, @e )' , values , filled ) ;
65+ require ( './fill-table' ) ( theirDb , 1000 , 'INSERT INTO entries VALUES (@a, @b, @c, @d, @e )' , values , filled ) ;
66+ }
5767
5868function next ( ) {
5969 if ( ! trials . length ) {
@@ -66,5 +76,10 @@ function next() {
6676
6777 console . log ( clc . cyan ( trialName ) ) ;
6878 var child = spawn ( 'node' , [ '--expose-gc' , path . join ( __dirname , 'trials' , trialName ) ] , { stdio : 'inherit' } ) ;
69- child . on ( 'exit' , function ( ) { setTimeout ( next , 100 ) ; } ) ;
79+ child . on ( 'exit' , function ( code ) {
80+ if ( code !== 0 ) {
81+ console . log ( clc . red ( 'ERROR (code ' + code + '), probably out of memory' ) ) ;
82+ }
83+ setTimeout ( next , 100 ) ;
84+ } ) ;
7085}
0 commit comments