Benchmark Endgültig

This commit is contained in:
JanUlrich 2018-07-07 02:10:33 +02:00
parent ef9f9157f3
commit 0ae743f446
3 changed files with 50 additions and 82 deletions

View File

@ -155,7 +155,7 @@ public class JavaTXCompiler {
writer.close();
ASPUnify clingo = new ASPUnify(Arrays.asList(new File(tempDirectory + "test.lp")));
String result = clingo.runClingo();
System.out.println(result);
//System.out.println(result);
ResultSet resultSet = ASPParser.parse(result, getInvolvedTPHS(cons));
return Arrays.asList(resultSet);
}

View File

@ -45,8 +45,8 @@ public class ASPUnify {
}
commands.addAll(programFiles.stream().map(f->f.getPath()).collect(Collectors.toList()));
commands.stream().forEach(s -> System.out.print(s + " "));
System.out.println();
//commands.stream().forEach(s -> System.out.print(s + " "));
//System.out.println();
Process clingo = new ProcessBuilder( commands.toArray(new String[0])).start();
InputStream output = clingo.getInputStream();

View File

@ -1,17 +1,22 @@
package asp.unifywithoutwildcards;
import de.dhbwstuttgart.core.JavaTXCompiler;
import de.dhbwstuttgart.syntaxtree.ClassOrInterface;
import de.dhbwstuttgart.syntaxtree.SourceFile;
import de.dhbwstuttgart.syntaxtree.factory.UnifyTypeFactory;
import de.dhbwstuttgart.syntaxtree.visual.ASTPrinter;
import de.dhbwstuttgart.syntaxtree.visual.ASTTypePrinter;
import de.dhbwstuttgart.syntaxtree.visual.ResultSetPrinter;
import de.dhbwstuttgart.typedeployment.TypeInsert;
import de.dhbwstuttgart.typedeployment.TypeInsertFactory;
import de.dhbwstuttgart.typeinference.constraints.ConstraintSet;
import de.dhbwstuttgart.typeinference.constraints.Pair;
import de.dhbwstuttgart.typeinference.result.ResultSet;
import de.dhbwstuttgart.typeinference.unify.model.FiniteClosure;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@ -22,92 +27,55 @@ public class JavaTXCompilerASPBenchmark {
public static final String rootDirectory = System.getProperty("user.dir")+"/test/javFiles/";
@Test
public void finiteClosure() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"fc.jav"));
}
@Test
public void lambda() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Lambda.jav"));
}
@Test
public void lambda2() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Lambda2.jav"));
}
@Test
public void lambda3() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Lambda3.jav"));
}
@Test
public void mathStruc() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"mathStruc.jav"));
}
@Test
public void generics() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Generics.jav"));
}
@Test
public void genericsMethodCall() throws IOException, ClassNotFoundException, InterruptedException {
TestResultSet result = execute(new File(rootDirectory+"MethodCallGenerics.jav"));
//TODO: Hier sollte der Rückgabetyp der Methode String sein
}
@Test
public void faculty() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Faculty.jav"));
}
@Test
public void facultyTyped() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"FacultyTyped.jav"));
}
@Test
public void matrix() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Matrix.jav"));
}
@Test
public void matrixTest() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"MatrixTest.jav"));
}
@Test
public void packageTests() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Package.jav"));
}
@Test
public void vector() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Vector.jav"));
}
@Test
public void lambdaRunnable() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"LambdaRunnable.jav"));
}
@Test
public void expressions() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"Expressions.jav"));
}
@Test
public void addLong() throws IOException, ClassNotFoundException, InterruptedException {
execute(new File(rootDirectory+"AddLong.jav"));
}
//execute(new File(rootDirectory+"Vector.jav"));
List<List<Long>> benchmarkUnifyResults = new ArrayList<>();
for(int numAdds = 1; numAdds <= 15; numAdds++){
private static class TestResultSet{
String tmpFile = "/tmp/vector.jav";
PrintWriter writer = new PrintWriter(tmpFile, "UTF-8");
writer.println("import java.util.ArrayList;");
writer.println("import java.util.Vector;");
writer.println("import java.lang.Object;");
writer.println("class MyVector{");
writer.println("id(x){");
writer.println("Object i;");
for(int i = 0; i< numAdds; i++)
writer.println("x.add(i);");
writer.println("return x;");
writer.println("}}");
writer.close();
}
List<Long> results = new ArrayList<>();
List<Long> resultsTotal = new ArrayList<>();
for(int i = 0; i < 20 ; i++){
Date d1 = new Date();
JavaTXCompiler compiler = new JavaTXCompiler(new File(tmpFile));
public TestResultSet execute(File fileToTest) throws IOException, ClassNotFoundException, InterruptedException {
List<String> results = new ArrayList<>();
for(int i = 0; i < 20; i++){
Date d1 = new Date();
JavaTXCompiler compiler = new JavaTXCompiler(fileToTest);
Date du1 = new Date();
compiler.aspTypeInference();
Date du2 = new Date();
compiler.aspTypeInference();
Date d2 = new Date();
long seconds = (d2.getTime()-d1.getTime())/1000;
results.add("Total: "+seconds + " Sekunden");
Date d2 = new Date();
if(i > 4){
long milliseconds = (du2.getTime()-du1.getTime());
results.add(milliseconds);
milliseconds = (d2.getTime()-d1.getTime());
resultsTotal.add(milliseconds);
}
}
benchmarkUnifyResults.add(results);
}
for(String result : results){
System.out.println(result);
for(int y = 0; y < benchmarkUnifyResults.get(0).size(); y++){
for(int x = 0; x < benchmarkUnifyResults.size(); x++){
long value = benchmarkUnifyResults.get(x).get(y);
System.out.print(value + " ");
}
System.out.println();
}
return new TestResultSet();
}
static String readFile(String path, Charset encoding)