JAL-2662 tweak README, format code
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 13 Nov 2017 16:23:12 +0000 (16:23 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 13 Nov 2017 16:23:23 +0000 (16:23 +0000)
benchmarking/README
benchmarking/src/main/java/org/jalview/HiddenColumnsBenchmark.java

index 60b94a9..fac0bf6 100644 (file)
@@ -1,11 +1,13 @@
 To set up benchmarking:
 
-1. In the jalview directory run 
+You will need to install Maven: https://maven.apache.org/install.html
+
+1. Run the makedist target of build.xml in Eclipse, or in the jalview directory run 
   ant makedist
 
 This builds a jalview.jar file and puts it into dist/
 
-2. Make a lib directory in benchmarking/ if not already present.
+2. Make a lib directory in benchmarking/ if not already present and cd into this directory.
 
 3. Purge any previous maven dependencies:
    mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
index eb35e3b..d3c67d7 100644 (file)
@@ -47,126 +47,128 @@ import jalview.datamodel.HiddenColumns;
 @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
 @Fork(1)
 public class HiddenColumnsBenchmark 
-{      
-       /*
-        * State with multiple hidden columns and a start position set
-        */
-       @State(Scope.Thread)
-       public static class HiddenColsAndStartState
-       {
-               @Param({"300", "10000", "100000"})
-               public int maxcols;
-               
-               @Param({"1", "50", "90"})
-               public int startpcnt; // position as percentage of maxcols
-               
-               @Param({"1","15","100"})
-               public int hide;
-               
-               HiddenColumns h = new HiddenColumns();
-               Random rand = new Random();
-               
-               public int hiddenColumn;
-               public int visibleColumn;
-       
-               @Setup
-               public void setup()
-               {
-                       rand.setSeed(1234);
-                       int lastcol = 0;
-               while (lastcol < maxcols)
-               {
-                       int count = rand.nextInt(100); 
-                       lastcol += count;
-                       h.hideColumns(lastcol, lastcol+hide);
-                       lastcol+=hide;
-               }
-               
-               // make sure column at start is hidden
-               hiddenColumn = (int)(maxcols * startpcnt/100.0);
-               h.hideColumns(hiddenColumn, hiddenColumn);
-               
-               // and column <hide> after start is visible
-               ColumnSelection sel = new ColumnSelection();
-               h.revealHiddenColumns(hiddenColumn+hide, sel);
-               visibleColumn = hiddenColumn+hide;
-               
-               System.out.println("Maxcols: " + maxcols + " HiddenCol: " + hiddenColumn + " Hide: " + hide);
-               System.out.println("Number of hidden columns: " + h.getSize());
-               }
-       }
-       
-       /* Convention: functions in alphabetical order */
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-       public int benchAdjustForHiddenColumns(HiddenColsAndStartState tstate)
-       {
-               return tstate.h.adjustForHiddenColumns(tstate.visibleColumn);
-       }
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-       public int benchFindColumnPosition(HiddenColsAndStartState tstate)
-       {
-               return tstate.h.findColumnPosition(tstate.visibleColumn);
-       }
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-       public List<Integer> benchFindHiddenRegionPositions(HiddenColsAndStartState tstate)
-       {
-               return tstate.h.findHiddenRegionPositions();
-       }
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-       public ArrayList<int[]> benchGetHiddenColumnsCopy(HiddenColsAndStartState tstate)
-       {
-               return tstate.h.getHiddenColumnsCopy();
-       }
-       
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-    public int benchGetSize(HiddenColsAndStartState tstate)
-    {
-               return tstate.h.getSize();
-    }
+{
+  /*
+   * State with multiple hidden columns and a start position set
+   */
+  @State(Scope.Thread)
+  public static class HiddenColsAndStartState
+  {
+    @Param({ "300", "10000", "100000" })
+    public int maxcols;
 
-   @Benchmark
-    @BenchmarkMode({Mode.Throughput})
-    public HiddenColumns benchHideCols(HiddenColsAndStartState tstate) 
-    {
-       tstate.h.hideColumns(tstate.visibleColumn,
-                       tstate.visibleColumn+2000); 
-       return tstate.h;
-    }
-   
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-    public boolean benchIsVisible(HiddenColsAndStartState tstate) 
-    {
-       return tstate.h.isVisible(tstate.hiddenColumn); 
-    }
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-    public HiddenColumns benchReveal(HiddenColsAndStartState tstate) 
-    {
-               ColumnSelection sel = new ColumnSelection();
-       tstate.h.revealHiddenColumns(tstate.hiddenColumn, sel);
-       return tstate.h;
-    }
-       
-       @Benchmark
-       @BenchmarkMode({Mode.Throughput})
-    public HiddenColumns benchRevealAll(HiddenColsAndStartState tstate) 
+    @Param({ "1", "50", "90" })
+    public int startpcnt; // position as percentage of maxcols
+
+    @Param({ "1", "15", "100" })
+    public int hide;
+
+    HiddenColumns h = new HiddenColumns();
+
+    Random rand = new Random();
+
+    public int hiddenColumn;
+
+    public int visibleColumn;
+
+    @Setup
+    public void setup()
     {
-               ColumnSelection sel = new ColumnSelection();
-       tstate.h.revealAllHiddenColumns(sel);
-       return tstate.h;
+      rand.setSeed(1234);
+      int lastcol = 0;
+      while (lastcol < maxcols)
+      {
+        int count = rand.nextInt(100);
+        lastcol += count;
+        h.hideColumns(lastcol, lastcol + hide);
+        lastcol += hide;
+      }
+
+      // make sure column at start is hidden
+      hiddenColumn = (int) (maxcols * startpcnt / 100.0);
+      h.hideColumns(hiddenColumn, hiddenColumn);
+
+      // and column <hide> after start is visible
+      ColumnSelection sel = new ColumnSelection();
+      h.revealHiddenColumns(hiddenColumn + hide, sel);
+      visibleColumn = hiddenColumn + hide;
+
+      System.out.println("Maxcols: " + maxcols + " HiddenCol: "
+              + hiddenColumn + " Hide: " + hide);
+      System.out.println("Number of hidden columns: " + h.getSize());
     }
-       
-       
+  }
+
+  /* Convention: functions in alphabetical order */
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public int benchAdjustForHiddenColumns(HiddenColsAndStartState tstate)
+  {
+    return tstate.h.adjustForHiddenColumns(tstate.visibleColumn);
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public int benchFindColumnPosition(HiddenColsAndStartState tstate)
+  {
+    return tstate.h.findColumnPosition(tstate.visibleColumn);
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public List<Integer> benchFindHiddenRegionPositions(
+          HiddenColsAndStartState tstate)
+  {
+    return tstate.h.findHiddenRegionPositions();
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public ArrayList<int[]> benchGetHiddenColumnsCopy(
+          HiddenColsAndStartState tstate)
+  {
+    return tstate.h.getHiddenColumnsCopy();
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public int benchGetSize(HiddenColsAndStartState tstate)
+  {
+    return tstate.h.getSize();
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public HiddenColumns benchHideCols(HiddenColsAndStartState tstate)
+  {
+    tstate.h.hideColumns(tstate.visibleColumn, tstate.visibleColumn + 2000);
+    return tstate.h;
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public boolean benchIsVisible(HiddenColsAndStartState tstate)
+  {
+    return tstate.h.isVisible(tstate.hiddenColumn);
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public HiddenColumns benchReveal(HiddenColsAndStartState tstate)
+  {
+    ColumnSelection sel = new ColumnSelection();
+    tstate.h.revealHiddenColumns(tstate.hiddenColumn, sel);
+    return tstate.h;
+  }
+
+  @Benchmark
+  @BenchmarkMode({ Mode.Throughput })
+  public HiddenColumns benchRevealAll(HiddenColsAndStartState tstate)
+  {
+    ColumnSelection sel = new ColumnSelection();
+    tstate.h.revealAllHiddenColumns(sel);
+    return tstate.h;
+  }
+
 }
\ No newline at end of file