diff --git a/bench.lua b/bench.lua new file mode 100644 index 0000000..9e867eb --- /dev/null +++ b/bench.lua @@ -0,0 +1,61 @@ +function json_decode_file( file ) + local json = require( "json" ) + + local str = "" + for line in io.lines( file ) do + str = str .. line + end + + return json.decode( str ) +end + +function bench( width, height ) + local graphs = json_decode_file( "../graphs.json" ) + + require( "cairo" ) + require( "conkygraph" ) + + -- HACK + local j = 0 + for k, v in pairs( graphs ) do + j = j + 1 + end + + local w = width + local h = height / j + + local cs = cairo_image_surface_create( cairo.FORMAT_RGB24, width, height ) + local cr = cairo_create( cs ) + + cairo.set_source_rgb( cr, 1, 1, 1 ) + cairo.paint( cr ) + + -- Fill with random data + for k1, v in pairs( graphs ) do + for k2, f in pairs( v.functions ) do + local d = width / f.dx + f.data = {} + + for i = 1, d do + table.insert( f.data, math.sin( i ) ) + end + end + end + + local start = os.clock() + + local i = 0 + for k1, g in pairs( graphs ) do + for k2, f in pairs( g.functions ) do + cairo_graph( cr, 0, i * h, w, h, f ) + end + + i = i + 1 + end + + print( "Time: " .. os.clock() - start ) + + cairo.surface_write_to_png( cs, "bench.png" ) +end + +bench( 1280, 1024 )