Skip to content

Commit

Permalink
fix: format durations using BigDecimal to sort values as numbers inst…
Browse files Browse the repository at this point in the history
…ead of strings (fixes #655)
  • Loading branch information
bjansen committed Oct 5, 2023
1 parent bcc62fa commit 7e0c8e2
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
import org.antlr.v4.runtime.atn.DecisionInfo;
import org.antlr.v4.runtime.atn.ParseInfo;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.LinkedHashMap;

public class ExpertProfilerTableDataModel extends ProfilerTableDataModel {
public ParseInfo parseInfo;
public LinkedHashMap<String, Integer> nameToColumnMap = new LinkedHashMap<>();
public static final String[] columnNames = {
"Decision", "Invocations", "Time", "# DFA states", "LL failover", "Total k",
"Decision", "Invocations", "Time (ms)", "# DFA states", "LL failover", "Total k",
"Min SLL k", "Min LL k",
"Max SLL k", "Max LL k",
"DFA k", "SLL-ATN k", "LL-ATN k", "Full context", "Ambiguities", "Predicates"
Expand All @@ -37,8 +37,6 @@ public class ExpertProfilerTableDataModel extends ProfilerTableDataModel {
"# of predicate evaluations"
};

// microsecond decimal precision
private final NumberFormat milliUpToMicroFormatter = new DecimalFormat("#.###");
private final String[] ruleNamesByDecision ;

public ExpertProfilerTableDataModel(ParseInfo parseInfo, Parser parser) {
Expand Down Expand Up @@ -77,7 +75,7 @@ public Object getValueAt(int row, int col) {
case 1:
return decisionInfo.invocations;
case 2:
return milliUpToMicroFormatter.format(decisionInfo.timeInPrediction / (1000.0 * 1000.0));
return BigDecimal.valueOf(decisionInfo.timeInPrediction / (1000.0 * 1000.0)).setScale(3, RoundingMode.HALF_DOWN);
case 3:
return parseInfo.getDFASize(decision);
case 4:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
import org.antlr.v4.runtime.atn.DecisionInfo;
import org.antlr.v4.runtime.atn.ParseInfo;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.LinkedHashMap;

public class SimpleProfilerTableDataModel extends ProfilerTableDataModel {
public ParseInfo parseInfo;
public LinkedHashMap<String, Integer> nameToColumnMap = new LinkedHashMap<>();
public static final String[] columnNames = {
"Rule","Invocations", "Time", "Total k", "Max k", "Ambiguities", "DFA cache miss"
"Rule","Invocations", "Time (ms)", "Total k", "Max k", "Ambiguities", "DFA cache miss"
};

public static final String[] columnToolTips = {
Expand Down Expand Up @@ -63,7 +63,7 @@ public Object getValueAt(int row, int col) {
case 1:
return decisionInfo.invocations;
case 2:
return decisionInfo.timeInPrediction/(1000.0 * 1000.0);
return BigDecimal.valueOf(decisionInfo.timeInPrediction / (1000.0 * 1000.0)).setScale(3, RoundingMode.HALF_DOWN);
case 3:
return decisionInfo.LL_TotalLook+decisionInfo.SLL_TotalLook;
case 4:
Expand Down

0 comments on commit 7e0c8e2

Please sign in to comment.