2525import java .util .List ;
2626import java .util .Map ;
2727
28- import static org .finos .vuu .benchmark .ColumnNames .ASK ;
29- import static org .finos .vuu .benchmark .ColumnNames .BID ;
30- import static org .finos .vuu .benchmark .ColumnNames .CLOSE ;
31- import static org .finos .vuu .benchmark .ColumnNames .CURRENCY ;
32- import static org .finos .vuu .benchmark .ColumnNames .EXCHANGE ;
33- import static org .finos .vuu .benchmark .ColumnNames .LAST ;
34- import static org .finos .vuu .benchmark .ColumnNames .MINOR_CURRENCY ;
35- import static org .finos .vuu .benchmark .ColumnNames .ORDER_ID ;
36- import static org .finos .vuu .benchmark .ColumnNames .QUANTITY ;
37- import static org .finos .vuu .benchmark .ColumnNames .RIC ;
38- import static org .finos .vuu .benchmark .ColumnNames .TRADER ;
39- import static org .finos .vuu .benchmark .ColumnNames .TRADE_TIME ;
40- import static org .finos .vuu .benchmark .TableDefs .CURRENCIES ;
41- import static org .finos .vuu .benchmark .TableDefs .CURRENCIES_NAME ;
42- import static org .finos .vuu .benchmark .TableDefs .ORDERS ;
43- import static org .finos .vuu .benchmark .TableDefs .ORDERS_NAME ;
44- import static org .finos .vuu .benchmark .TableDefs .ORDER_PRICES_CURRENCIES ;
45- import static org .finos .vuu .benchmark .TableDefs .PRICES ;
46- import static org .finos .vuu .benchmark .TableDefs .PRICES_CURRENCIES ;
47- import static org .finos .vuu .benchmark .TableDefs .PRICES_NAME ;
28+ import static org .finos .vuu .benchmark .ColumnNames .*;
29+ import static org .finos .vuu .benchmark .TableDefs .*;
4830import static org .finos .vuu .util .ScalaCollectionConverter .toScala ;
4931
5032public class BenchmarkHelper {
5133
34+ private static final int MASK = 16_383 ;
5235 private final Clock clock = new DefaultClock ();
5336 private final LifecycleContainer lifecycleContainer = new LifecycleContainer (clock );
5437 private final MetricsProvider metricsProvider = new MetricsProviderImpl ();
@@ -78,7 +61,7 @@ public void addCurrencyTableData() {
7861 rowBuilder .setString (dataTable .columnForName (CURRENCY ), "GBP" );
7962 rowBuilder .setString (dataTable .columnForName (MINOR_CURRENCY ), "GBX" );
8063 dataTable .processUpdate (rowBuilder .build ());
81- joinProvider . runOnce ();
64+ runJoinProvider ();
8265 }
8366
8467 public void addPriceTableData (int size ) {
@@ -102,11 +85,9 @@ public void addPriceTableData(int size) {
10285 rowBuilder .setDouble (lastColumn , i + 3.0 );
10386 rowBuilder .setDouble (closeColumn , i + 4.0 );
10487 dataTable .processUpdate (rowBuilder .build ());
105- if (i % 10_000 == 0 ) {
106- joinProvider .runOnce ();
107- }
88+ runJoinProviderIfRequired (i );
10889 }
109- joinProvider . runOnce ();
90+ runJoinProvider ();
11091 }
11192
11293 public void addOrderTableData (int size ) {
@@ -126,11 +107,9 @@ public void addOrderTableData(int size) {
126107 rowBuilder .setLong (tradeTimeColumn , clock .now ());
127108 rowBuilder .setDouble (quantityColumn , i );
128109 dataTable .processUpdate (rowBuilder .build ());
129- if (i % 10_000 == 0 ) {
130- joinProvider .runOnce ();
131- }
110+ runJoinProviderIfRequired (i );
132111 }
133- joinProvider . runOnce ();
112+ runJoinProvider ();
134113 }
135114
136115 public TreeBuilder createTreeBuilder () {
@@ -157,4 +136,14 @@ public TreeBuilder createTreeBuilder() {
157136 clock );
158137 }
159138
139+ public void runJoinProviderIfRequired (int iteration ) {
140+ if ((iteration & MASK ) == 0 ) {
141+ runJoinProvider ();
142+ }
143+ }
144+
145+ public void runJoinProvider () {
146+ joinProvider .runOnce ();
147+ }
148+
160149}
0 commit comments