Ich habe eine Funktion, die die Sättigung eines logischen Ausdrucks prüft und auch die Prüfzeit anzeigt. Ich gebe ein Eingabebeispiel und es zeigt, dass es etwa 10000 Millisekunden (10 Sekunden) dauert, aber warum, wenn ich versuche, alle mit dem testTimer verbundenen Codezeilen zu entfernen, dauerte es nur weniger als eine Sekunde, um den Code mit der gleichen Eingabe auszuführen ?java testTimer, um die Ausführungszeit zu testen
protected boolean runSat() {
testTimer.start();
boolean result = checkSatisfiability();
testTimer.stop();
 options.getLog().print("\nChecking time was ", testTimer.getResultTim e()," milliseconds");
testTimer.reset();
finaliseStatistic();
if (result) {cGraph.print(options.getLog());}return result;}

Der ursprüngliche Code ist hier verfügbar: http://grepcode.com/file/repo1.maven.org/maven2/net.sourceforge.owlapi/jfact/1.0.0/uk/ac/manchester/cs/jfact/kernel/DlSatTester.java
Ich bin nicht sicher was du fragst. Wollen Sie damit sagen, dass, wenn Sie die obige Methode anwenden und Sie alle Verwendungen von testTimer auskommentieren, Ihr Code in 0,5 Sekunden (gegenüber 10 Sekunden "wie es ist") fertig ist? – GhostCat
ja das ist wahr – Razieh
Klingt komisch. Nur um eine Idee zu bekommen, was vor sich geht; Ich würde println System.currentTimeMillis() nach jeder Zeile hinzufügen. Vielleicht enthält dein TestTimer viel Zeug und Reset() ... macht das viel Arbeit? – GhostCat