시리즈: Java Old
java
41 줄
· 업데이트 2026-02-04
SimpleOrderBookBenchmark.java
Java_Old/advanced/concurrency_course/module06/src/concurrency/module06/SimpleOrderBookBenchmark.java
package concurrency.module06;
/**
* Simple throughput benchmark for {@link OrderBook} without JMH. Preloads the
* book with orders, then measures: (1) add + cancel pairs, (2) bestBid/bestAsk
* reads. Use for quick comparison; for rigorous measurement use
* {@link JMH_OrderBookBenchmark} with JMH.
*/
public class SimpleOrderBookBenchmark {
/**
* Preloads the book with 500 bid and 500 ask levels, then runs two benchmarks:
* add+cancel pairs and bestBid/bestAsk. Prints elapsed ms and ops/s for add+cancel.
*
* @param args unused
*/
public static void main(String[] args) {
OrderBook book = new OrderBook("BTC-USD");
for (int i = 0; i < 500; i++) {
book.addOrder(true, 100 - i * 0.01, 10, "u" + i);
book.addOrder(false, 101 + i * 0.01, 10, "u" + i);
}
int ops = 1_000_000;
long start = System.nanoTime();
for (int i = 0; i < ops; i++) {
long id = book.addOrder(true, 99.5, 1, "b");
book.cancelOrder(id);
}
long elapsed = (System.nanoTime() - start) / 1_000_000;
System.out.println("Add+cancel " + ops + " ops: " + elapsed + " ms, " + (ops * 1000L / Math.max(1, elapsed)) + " ops/s");
start = System.nanoTime();
for (int i = 0; i < ops; i++) {
book.bestBid();
book.bestAsk();
}
elapsed = (System.nanoTime() - start) / 1_000_000;
System.out.println("BestBid/Ask " + ops + " ops: " + elapsed + " ms");
}
}
관련 글
Java Old
java
업데이트 2026-02-03
Main.java
Main.java — java source code from the Java Old learning materials (Java_Old/Main.java).
글 읽기 →
Java Old
java
업데이트 2026-02-03
Student.java
Student.java — java source code from the Java Old learning materials (Java_Old/Student.java).
글 읽기 →
Java Old
java
업데이트 2026-02-03
01_Generics.java
01_Generics.java — java source code from the Java Old learning materials (Java_Old/advanced/01_Generics.java).
글 읽기 →
Java Old
java
업데이트 2026-02-03
02_Collections.java
02_Collections.java — java source code from the Java Old learning materials (Java_Old/advanced/02_Collections.java).
글 읽기 →
Java Old
java
업데이트 2026-02-03
03_Streams.java
03_Streams.java — java source code from the Java Old learning materials (Java_Old/advanced/03_Streams.java).
글 읽기 →
Java Old
java
업데이트 2026-02-03
CollectionsExample.java
CollectionsExample.java — java source code from the Java Old learning materials (Java_Old/advanced/CollectionsExample.java).
글 읽기 →