From 426ae21e2713ee748cd8e15f9ef41b95a3c9082e Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr> Date: Tue, 6 Sep 2022 12:30:42 +0200 Subject: [PATCH] Adding computation time for PLAN - diplodocus --- .../JFrameLatencyDetailedAnalysis.java | 19 ++++++++++++++++--- .../JFrameLatencyDetailedPopup.java | 16 ++++++++-------- .../LatencyAnalysisParallelAlgorithms.java | 3 +++ 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java index 58633d849e..c0d8f39476 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedAnalysis.java @@ -510,6 +510,8 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe protected void generateDirectedGraph(TMLMapping<TGComponent> tmap, List<TMLComponentDesignPanel> cpanels) { try { + + long timeStart = System.currentTimeMillis(); dgraph = new DependencyGraphTranslator(tmap); tc.setDgraph(dgraph); pbar.setMaximum(dgraph.getNodeNbProgressBar()); @@ -531,8 +533,9 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } }); dgraph.DrawDirectedGraph(); + long timeEnd = System.currentTimeMillis(); jta.append("A directed graph with " + dgraph.getGraphsize() + " vertices and " + dgraph.getGraphEdgeSet() - + " edges has been successfully generated.\n"); + + " edges has been successfully generated.\nThe computation took " + (timeEnd-timeStart) + " ms\n"); // buttonSaveDGraph.setEnabled(true); if (dgraph.getWarnings().size() > 0) { jta.append("Warnings: \n "); @@ -700,8 +703,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_CHECK_PATH].getActionCommand())) { String task1 = tasksDropDownCombo1.getSelectedItem().toString(); String task2 = tasksDropDownCombo2.getSelectedItem().toString(); + long timeStart = System.currentTimeMillis(); String message = dgraph.checkPath(task1, task2); - jta.append(message + " :" + task1 + " and " + task2 + ".\n"); + long timeEnd = System.currentTimeMillis(); + jta.append(message + " :" + task1 + " and " + task2 + ".\nThe computation took " + (timeEnd-timeStart) + " ms\n"); } else if (command.equals(actions[LatencyDetailedAnalysisActions.ACT_ADD_RULE].getActionCommand())) { String node1 = tasksDropDownCombo3.getSelectedItem().toString(); String node2 = tasksDropDownCombo4.getSelectedItem().toString(); @@ -858,6 +863,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe } protected void preciselatencyAnalysis(int row1) throws InterruptedException { + tc.getT().join(); Boolean taint = taintFirstOp.isSelected(); int selectedIndex = resultTab.getSelectedIndex(); @@ -912,6 +918,7 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe protected void latencyDetailedAnalysis() { try { + long timeStart = System.currentTimeMillis(); preciseAnalysisbutton.setEnabled(false); String task1 = tasksDropDownCombo1.getSelectedItem().toString(); String task2 = tasksDropDownCombo2.getSelectedItem().toString(); @@ -986,7 +993,9 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe scrollPane11.revalidate(); scrollPane11.repaint(); // scrollPane11.setVisible(true); - jta.append("Latency has been computed...Please refer to the tables in the Latency Analysis section for the results.\n"); + long timeEnd = System.currentTimeMillis(); + jta.append("Latency has been computed...Please refer to the tables in the Latency Analysis section for the results.\n The computation " + + "took " + (timeEnd - timeStart) + " ms\n"); latencybutton.setEnabled(true); this.pack(); this.setVisible(true); @@ -1046,6 +1055,10 @@ public class JFrameLatencyDetailedAnalysis extends JFrame implements ActionListe return checkedTransactions; } + public void preciseLatencyCompute(String text, long computationTime) { + jta.append("The computation of " + text + " took " + computationTime + " ms\n"); + } + @Override public void stateChanged(ChangeEvent e) { } diff --git a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java index 7b8d06007d..21c1e77ed3 100644 --- a/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java +++ b/src/main/java/ui/simulationtraceanalysis/JFrameLatencyDetailedPopup.java @@ -266,38 +266,38 @@ public class JFrameLatencyDetailedPopup extends JFrame implements TableModelList c01.weighty = 1.0; c01.weightx = 1.0; c01.gridwidth = 1; - c01.gridx = 0; - c01.gridy = 0; + c01.gridx = 10; + c01.gridy = 1; //JLabel pBarLabel0 = new JLabel(TABLE_LEGEND); JPanel legendpanel = new JPanel(gridbag01); //lengedpanel.add(pBarLabel0, c01); c01.gridwidth = GridBagConstraints.REMAINDER; c01.gridx = 1; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel = new JLabel(MANDATORY_TRANSACTIONS, JLabel.RIGHT); legendpanel.add(pBarLabel, c01); c01.gridx = 1; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel2 = new JLabel(" ", JLabel.LEFT); pBarLabel2.setOpaque(true); pBarLabel2.setBackground(Color.GREEN); legendpanel.add(pBarLabel2, c01); c01.gridx = 4; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel3 = new JLabel(NON_MAND_CONT_TRAN, JLabel.RIGHT); legendpanel.add(pBarLabel3, c01); c01.gridx = 3; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel4 = new JLabel(" ", JLabel.LEFT); pBarLabel4.setOpaque(true); pBarLabel4.setBackground(Color.RED); legendpanel.add(pBarLabel4, c01); c01.gridx = 6; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel5 = new JLabel(NON_MAND_NO_CONT_TRAN, JLabel.RIGHT); legendpanel.add(pBarLabel5, c01); c01.gridx = 5; - c01.gridy = 0; + c01.gridy = 1; JLabel pBarLabel6 = new JLabel(" ", JLabel.LEFT); pBarLabel6.setOpaque(true); pBarLabel6.setBackground(Color.ORANGE); diff --git a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java index 8fccc86300..bdbe17ff78 100644 --- a/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java +++ b/src/main/java/ui/simulationtraceanalysis/LatencyAnalysisParallelAlgorithms.java @@ -43,8 +43,11 @@ public class LatencyAnalysisParallelAlgorithms implements Runnable { if (algorithmId == 1) { jFrameLDA.generateDirectedGraph(tmap, cpanels); } else if (algorithmId == 2) { + long timeStart = System.currentTimeMillis(); dataDetailedByTask = dgraph.getTaskByRowDetails(row); dataMandatoryOptional = dgraph.getMandatoryOptionalByRow(row); + long timeEnd = System.currentTimeMillis(); + jFrameLDA.preciseLatencyCompute("precise latency analysis", timeEnd - timeStart); } else if (algorithmId == 3) { dataDetailedByTask = dgraph.getTaskByRowDetailsMinMaxTaint(row); } else if (algorithmId == 4) { -- GitLab