X-Git-Url: http://nitlanguage.org diff --git a/benchmarks/bench_languages.sh b/benchmarks/bench_languages.sh index c851515..5348c8d 100755 --- a/benchmarks/bench_languages.sh +++ b/benchmarks/bench_languages.sh @@ -57,7 +57,7 @@ function bench_command() # Execute the commands $count times for i in `seq 1 "$count"`; do - (ulimit -t 60; /usr/bin/time -f "%U" -o "$timeout" -a "$@") > $outputopts 2>&1 || die "$1: failed" + (ulimit -t 300; /usr/bin/time -f "%U" -o "$timeout" -a "$@") > $outputopts 2>&1 || die "$1: failed" echo -n "$i. " tail -n 1 "$timeout" done @@ -141,102 +141,9 @@ test -f ./nitg || ../src/nitc_3 ../src/nitg.nit -O -v ## EFFECTIVE BENCHS ## -function bench_typetest_languages() +function bench_language() { - name="$FUNCNAME" - skip_test "$name" && return - - t=t - s=20 - seq="w2_h2 w50_h2 w2_h25 w50_h25" - for b in $seq; do - run_command ./nitg languages/gen.nit - run_command ./gen.bin "${t}_$b" "$b" - done - - prepare_res "$name-g++.dat" "g++" "g++" - for b in $seq; do - run_command g++ "${t}_$b.cpp" -O2 -o "${t}_$b.g++.bin" - bench_command "$b" "" "./${t}_$b.g++.bin" $s - done - - prepare_res "$name-clang++.dat" "clang++" "clang++" - for b in $seq; do - run_command clang++ "${t}_$b.cpp" -O2 -o "${t}_$b.clang++.bin" - bench_command "$b" "" "./${t}_$b.clang++.bin" $s - done - - prepare_res "$name-java.dat" "java" "java" - for b in $seq; do - run_command javac ${t}_$b.java - bench_command "$b" "" java "${t}_$b" $s - done - - prepare_res "$name-scala.dat" "scala" "scala" - for b in $seq; do - run_command scalac ${t}_$b.scala - bench_command "$b" "" scala "${t}_$b" $s - done - - prepare_res "$name-cs.dat" "c#" "c#" - for b in $seq; do - run_command gmcs ${t}_$b.cs - bench_command "$b" "" mono "${t}_$b.exe" $s - done - - prepare_res "$name-es.dat" "es" "es" - for b in $seq; do - run_command ec -clean -finalize ${t}_$b/app${t}_$b.e - chmod +x app${t}_$b - mv app${t}_$b ${t}_$b.es.bin - bench_command "$b" "" "./${t}_$b.es.bin" $s - done - - prepare_res "$name-se.dat" "se" "se" - for b in $seq; do - run_command se compile -no_check app${t}_${b}_se.e -loadpath ${t}_${b}_se -o ${t}_$b.se.bin - bench_command "$b" "" "./${t}_$b.se.bin" $s - done - - #too slow - #prepare_res "$name-nitg.dat" "nitg" "nitg" - #for b in $seq; do - # run_command ./nitg "${t}_$b.nit" -o "${t}_$b.nitg.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - # bench_command "$b" "" "./${t}_$b.nitg.bin" $s - #done - - prepare_res "$name-nitg-s.dat" "nitg-s" "nitg-s" - for b in $seq; do - run_command ./nitg ${t}_$b.nit --separate -o "${t}_$b.nitg-s.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "./${t}_$b.nitg-s.bin" $s - done - - prepare_res "$name-nitg-su.dat" "nitg-su" "nitg-su" - for b in $seq; do - run_command ./nitg ${t}_$b.nit --separate --no-check-covariance -o "${t}_$b.nitg-su.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "./${t}_$b.nitg-su.bin" $s - done - - - prepare_res "$name-nitg-e.dat" "nitg-e" "nitg-e" - for b in $seq; do - run_command ./nitg ${t}_$b.nit --erasure -o "${t}_$b.nitg-e.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "./${t}_$b.nitg-e.bin" $s - done - - prepare_res "$name-nitg-eu.dat" "nitg-eu" "nitg-eu" - for b in $seq; do - run_command ./nitg ${t}_$b.nit --erasure --no-check-covariance --no-check-erasure-cast -o "${t}_$b.nitg-eu.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "./${t}_$b.nitg-eu.bin" $s - done - - plot "$name.gnu" -} -bench_typetest_languages - -function bench_typetest_depth() -{ - name="$FUNCNAME" + name="$1" skip_test "$name" && return rootdir=`pwd` basedir="./${name}.out" @@ -245,7 +152,7 @@ function bench_typetest_depth() t=t s=20 - seq="10 25 50 100" + seq="2 4 8" for b in $seq; do run_command ./nitg languages/$name.nit -o $basedir/$name.bin run_command $basedir/$name.bin $basedir "${t}_$b" "$b" @@ -271,6 +178,12 @@ function bench_typetest_depth() bench_command "$b" "" java -cp "${javadir}/" "${t}_$b" $s done + prepare_res $basedir/$name-gcj.dat "gcj" "gcj" + for b in $seq; do + run_command gcj --main=${t}_$b -O2 "${javadir}/${t}_$b.java" -o "${javadir}/${t}_$b.gcj.bin" + bench_command "$b" "" "${javadir}/${t}_$b.gcj.bin" $s + done + prepare_res $basedir/$name-scala.dat "scala" "scala" scaladir="${basedir}/scala" for b in $seq; do @@ -308,86 +221,7 @@ function bench_typetest_depth() nitdir="${basedir}/nit" prepare_res $nitdir/$name-nitg.dat "nitg" "nitg" for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit -o "$nitdir/${t}_$b.nitg.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg.bin" $s - done - - prepare_res $nitdir/$name-nitg-s.dat "nitg-s" "nitg-s" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --separate -o "$nitdir/${t}_$b.nitg-s.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-s.bin" $s - done - - prepare_res $nitdir/$name-nitg-su.dat "nitg-su" "nitg-su" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --separate --no-check-covariance -o "$nitdir/${t}_$b.nitg-su.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-su.bin" $s - done - - prepare_res $nitdir/$name-nitg-e.dat "nitg-e" "nitg-e" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --erasure -o "$nitdir/${t}_$b.nitg-e.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-e.bin" $s - done - - prepare_res $nitdir/$name-nitg-eu.dat "nitg-eu" "nitg-eu" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --erasure --no-check-covariance --no-check-erasure-cast -o "$nitdir/${t}_$b.nitg-eu.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-eu.bin" $s - done - - plot $basedir/$name.gnu -} -bench_typetest_depth - -function bench_typetest_fts_depth() -{ - name="$FUNCNAME" - skip_test "$name" && return - rootdir=`pwd` - basedir="./${name}.out" - - mkdir $basedir - - t=t - s=20 - seq="10 25 50 100" - for b in $seq; do - run_command ./nitg languages/$name.nit -o $basedir/$name.bin - run_command $basedir/$name.bin $basedir "${t}_$b" "$b" - done - - prepare_res $basedir/$name-cs.dat "c#" "c#" - csdir="${basedir}/cs" - for b in $seq; do - run_command gmcs "$csdir/${t}_$b.cs" - bench_command "$b" "" mono "$csdir/${t}_$b.exe" $s - done - - prepare_res $basedir/$name-es.dat "es" "es" - esdir="${basedir}/es" - for b in $seq; do - cd $esdir - run_command ec -clean -finalize ${t}_$b/app${t}_$b.e - chmod +x app${t}_$b - mv app${t}_$b ${t}_$b.es.bin - cd $rootdir - bench_command "$b" "" "$esdir/${t}_$b.es.bin" $s - done - - prepare_res $basedir/$name-se.dat "se" "se" - sedir="${basedir}/se" - for b in $seq; do - cd $sedir - run_command se compile -no_check app${t}_${b}_se.e -loadpath ${t}_${b}_se -o ${t}_$b.se.bin - cd $rootdir - bench_command "$b" "" "$sedir/${t}_$b.se.bin" $s - done - - nitdir="${basedir}/nit" - prepare_res $nitdir/$name-nitg.dat "nitg" "nitg" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit -o "$nitdir/${t}_$b.nitg.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" + run_command ./nitg $nitdir/${t}_$b.nit --global -o "$nitdir/${t}_$b.nitg.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" bench_command "$b" "" "$nitdir/${t}_$b.nitg.bin" $s done @@ -397,85 +231,26 @@ function bench_typetest_fts_depth() bench_command "$b" "" "$nitdir/${t}_$b.nitg-s.bin" $s done - prepare_res $nitdir/$name-nitg-su.dat "nitg-su" "nitg-su" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --separate --no-check-covariance -o "$nitdir/${t}_$b.nitg-su.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-su.bin" $s - done - - prepare_res $nitdir/$name-nitg-e.dat "nitg-e" "nitg-e" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --erasure -o "$nitdir/${t}_$b.nitg-e.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-e.bin" $s - done - - prepare_res $nitdir/$name-nitg-eu.dat "nitg-eu" "nitg-eu" - for b in $seq; do - run_command ./nitg $nitdir/${t}_$b.nit --erasure --no-check-covariance --no-check-erasure-cast -o "$nitdir/${t}_$b.nitg-eu.bin" --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\"" - bench_command "$b" "" "$nitdir/${t}_$b.nitg-eu.bin" $s - done - - plot $basedir/$name.gnu -} -bench_typetest_fts_depth - -function bench_typetest_fts_width() -{ - name="$FUNCNAME" - skip_test "$name" && return - rootdir=`pwd` - basedir="./${name}.out" - - mkdir $basedir - - t=t - s=20 - depth=10 - seq="1 2 5 10" - for b in $seq; do - run_command ./nitg languages/$name.nit -o $basedir/$name.bin - run_command $basedir/$name.bin $basedir "${t}_$b" $depth $b - done - - prepare_res $basedir/$name-cs.dat "c#" "c#" - csdir="${basedir}/cs" - for b in $seq; do - run_command gmcs "$csdir/${t}_$b.cs" - bench_command "$b" "" mono "$csdir/${t}_$b.exe" $s - done - - prepare_res $basedir/$name-es.dat "es" "es" - esdir="${basedir}/es" +<