Merge branch 'feature/JAL-2759' into merge/JAL-2759_2104
[jalview.git] / benchmarking / src / main / java / org / jalview / HiddenColumnsBenchmark.java
index d3c67d7..07b76f9 100644 (file)
@@ -47,128 +47,111 @@ 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()
+{      
+       /*
+        * State with multiple hidden columns and a start position set
+        */
+       @State(Scope.Thread)
+       public static class HiddenColsAndStartState
+       {
+               @Param({"100", "1000", "10000", "100000", "1000000"})
+               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.visibleToAbsoluteColumn(tstate.visibleColumn);
+       }
+       
+       @Benchmark
+       @BenchmarkMode({Mode.Throughput})
+       public int benchFindColumnPosition(HiddenColsAndStartState tstate)
+       {
+               return tstate.h.absoluteToVisibleColumn(tstate.visibleColumn);
+       }
+       
+       @Benchmark
+       @BenchmarkMode({Mode.Throughput})
+    public int benchGetSize(HiddenColsAndStartState tstate)
     {
-      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());
+               return tstate.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;
-  }
 
+   @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