#!/usr/bin/perl my @plots = ( [ "my-rijndael-ecb", "Custom Rijndael" ], [ "gladman-serpent-ecb", "Gladman Serpent" ], [ "mybotan-serpent-ecb", "MyBotan Serpent" ], [ "cryptopp-rijndael-ecb", "Crypto++ Rijndael" ], [ "cryptopp-serpent-ecb", "Crypto++ Serpent" ], [ "cryptopp-twofish-ecb", "Crypto++ Twofish" ], [ "cryptopp-cast6-ecb", "Crypto++ CAST6" ], [ "cryptopp-gost-ecb", "Crypto++ GOST" ], [ "cryptopp-xtea-ecb", "Crypto++ XTEA" ], [ "cryptopp-blowfish-ecb", "Crypto++ Blowfish" ], [ "cryptopp-cast5-ecb", "Crypto++ CAST5" ], [ "cryptopp-3des-ecb", "Crypto++ 3DES" ], ); sub gnuplot_flagsgcc34 { print <<EOF; #!/usr/bin/env gnuplot set terminal pdf dashed size 5.0, 5.07 set output 'flags-gcc3.4.pdf' set xrange [10:1600000] set format x "%.0f" EOF for my $p (@plots) { print <<EOF; ### Plot ### set title "$$p[1] - Speed by Data Length" set xlabel "Data Length in Bytes" set ylabel "Megabyte / Second" set logscale x unset logscale y set key below plot \\ "gcc34-O0/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O0" with errorlines pt 0 lt 1 lc 1, \\ "gcc34-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O1" with errorlines pt 0 lt 1 lc 2, \\ "gcc34-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O2" with errorlines pt 0 lt 1 lc 3, \\ "gcc34-O3/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3" with errorlines pt 0 lt 1 lc 4, \\ "gcc34-Os/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -Os" with errorlines pt 0 lt 1 lc 5, \\ "gcc34-O2-p4/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O2 p4" with errorlines pt 0 lt 1 lc 6, \\ "gcc34-O2-p4-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O2 p4 ofp" with errorlines pt 0 lt 1 lc 7, \\ "gcc34-O2-p4s-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O2 p4s ofp" with errorlines pt 0 lt 1 lc 8, \\ "gcc34-O3-p4/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4" with errorlines pt 0 lt 1 lc 9, \\ "gcc34-O3-p4-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4 ofp" with errorlines pt 0 lt 1 lc 10, \\ "gcc34-O3-p4s-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4s ofp" with errorlines pt 0 lt 1 lc 11, \\ "gcc34-O3-p4s-ofp-ul/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4s ofp ul" with errorlines pt 0 lt 1 lc 12, \\ \\ "mingw-O0/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "MinGW -O0" with errorlines pt 0 lt 4 lc 1, \\ "mingw-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "MinGW -O1" with errorlines pt 0 lt 4 lc 2, \\ "mingw-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "MinGW -O2" with errorlines pt 0 lt 4 lc 3, \\ "mingw-O3/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "MinGW -O3" with errorlines pt 0 lt 4 lc 4, \\ "mingw-Os/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "MinGW -Os" with errorlines pt 0 lt 4 lc 5 \\ EOF } } sub gnuplot_flags { print <<EOF; #!/usr/bin/env gnuplot set terminal pdf dashed size 5.0, 5.07 set output 'flags.pdf' set xrange [10:1600000] set format x "%.0f" EOF for my $p (@plots) { print <<EOF; ### Plot ### set title "$$p[1] - Speed by Data Length" set xlabel "Data Length in Bytes" set ylabel "Megabyte / Second" set logscale x unset logscale y set key below plot \\ "gcc34-O0/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O0" with errorlines pt 0 lt 2 lc 1, \\ "gcc34-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O1" with errorlines pt 0 lt 2 lc 2, \\ "gcc34-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O2" with errorlines pt 0 lt 2 lc 3, \\ "gcc34-O3/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3" with errorlines pt 0 lt 2 lc 4, \\ "gcc34-Os/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -Os" with errorlines pt 0 lt 2 lc 5, \\ "gcc34-O3-p4/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4" with errorlines pt 0 lt 2 lc 9, \\ "gcc34-O3-p4-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4 ofp" with errorlines pt 0 lt 2 lc 10, \\ "gcc34-O3-p4s-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4s ofp" with errorlines pt 0 lt 2 lc 11, \\ "gcc34-O3-p4s-ofp-ul/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 3.4.6 -O3 p4s ofp ul" with errorlines pt 0 lt 2 lc 12, \\ \\ "gcc41-O0/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O0" with errorlines pt 0 lt 1 lc 1, \\ "gcc41-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O1" with errorlines pt 0 lt 1 lc 2, \\ "gcc41-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O2" with errorlines pt 0 lt 1 lc 3, \\ "gcc41-O3/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O3" with errorlines pt 0 lt 1 lc 4, \\ "gcc41-Os/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -Os" with errorlines pt 0 lt 1 lc 5, \\ "gcc41-O3-p4/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O3 p4" with errorlines pt 0 lt 1 lc 6, \\ "gcc41-O3-p4-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O3 p4 ofp" with errorlines pt 0 lt 1 lc 7, \\ "gcc41-O3-p4s-ofp/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O3 p4s ofp" with errorlines pt 0 lt 1 lc 8, \\ "gcc41-O3-p4s-ofp-ul/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "gcc 4.1.2 -O3 p4s ofp ul" with errorlines pt 0 lt 1 lc 9, \\ \\ "icc-O0/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "icc 10.0 -O0" with errorlines pt 0 lt 4 lc 1, \\ "icc-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "icc 10.0 -O1" with errorlines pt 0 lt 4 lc 2, \\ "icc-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "icc 10.0 -O2" with errorlines pt 0 lt 4 lc 3, \\ "icc-O3/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "icc 10.0 -O3" with errorlines pt 0 lt 4 lc 4, \\ "icc-Os/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "icc 10.0 -Os" with errorlines pt 0 lt 4 lc 5, \\ \\ "msvc8-Od/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "msvc8 -Od" with errorlines pt 0 lt 6 lc 1, \\ "msvc8-O1/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "msvc8 -O1" with errorlines pt 0 lt 6 lc 2, \\ "msvc8-O2/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "msvc8 -O2" with errorlines pt 0 lt 6 lc 3, \\ "msvc8-Ox/$$p[0].txt" index 1 using 1:(\$2 / 1048576):(\$3 / 1048576) title "msvc8 -Ox" with errorlines pt 0 lt 6 lc 4 EOF } } open(GP, "| gnuplot") or die("Could not create a piped gnuplot."); select(GP); gnuplot_flagsgcc34(); close(GP); open(GP, "| gnuplot") or die("Could not create a piped gnuplot."); select(GP); gnuplot_flags(); close(GP);