test[log]: the total time consumed by multiple thread

This commit is contained in:
godotg committed 2024-03-22 15:18:54 +08:00
1 parent b025bae381
commit 8ade37bbe3
1 file changed
+21
@@ -41,6 +41,7 @@ import java.util.*;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicLong;
/** /**
* @author godotg * @author godotg
@@ -350,49 +351,69 @@ public class BenchmarkTesting {
@Test @Test
public void zfooMultipleThreadTest() throws InterruptedException { public void zfooMultipleThreadTest() throws InterruptedException {
var countdown = new CountDownLatch(threadNum); var countdown = new CountDownLatch(threadNum);
var atomic = new AtomicLong();
for (var i = 0; i < threadNum; i++) { for (var i = 0; i < threadNum; i++) {
executors[i].execute(() -> { executors[i].execute(() -> {
var startTime = System.currentTimeMillis();
zfooTest(); zfooTest();
var endTime = System.currentTimeMillis();
atomic.addAndGet(endTime - startTime);
countdown.countDown(); countdown.countDown();
}); });
} }
countdown.await(); countdown.await();
System.out.println(StringUtils.format("----------------------------------------------------->zfoo total [time:{}]", atomic));
} }
@Test @Test
public void furyMultipleThreadTest() throws InterruptedException { public void furyMultipleThreadTest() throws InterruptedException {
var countdown = new CountDownLatch(threadNum); var countdown = new CountDownLatch(threadNum);
var atomic = new AtomicLong();
for (var i = 0; i < threadNum; i++) { for (var i = 0; i < threadNum; i++) {
executors[i].execute(() -> { executors[i].execute(() -> {
var startTime = System.currentTimeMillis();
furyTest(); furyTest();
var endTime = System.currentTimeMillis();
atomic.addAndGet(endTime - startTime);
countdown.countDown(); countdown.countDown();
}); });
} }
countdown.await(); countdown.await();
System.out.println(StringUtils.format("----------------------------------------------------->fury total [time:{}]", atomic));
} }
@Test @Test
public void kryoMultipleThreadTest() throws InterruptedException { public void kryoMultipleThreadTest() throws InterruptedException {
var countdown = new CountDownLatch(threadNum); var countdown = new CountDownLatch(threadNum);
var atomic = new AtomicLong();
for (var i = 0; i < threadNum; i++) { for (var i = 0; i < threadNum; i++) {
executors[i].execute(() -> { executors[i].execute(() -> {
var startTime = System.currentTimeMillis();
kryoTest(); kryoTest();
var endTime = System.currentTimeMillis();
atomic.addAndGet(endTime - startTime);
countdown.countDown(); countdown.countDown();
}); });
} }
countdown.await(); countdown.await();
System.out.println(StringUtils.format("----------------------------------------------------->kryo total [time:{}]", atomic));
} }
@Test @Test
public void protobufMultipleThreadTest() throws InterruptedException { public void protobufMultipleThreadTest() throws InterruptedException {
var countdown = new CountDownLatch(threadNum); var countdown = new CountDownLatch(threadNum);
var atomic = new AtomicLong();
for (var i = 0; i < threadNum; i++) { for (var i = 0; i < threadNum; i++) {
executors[i].execute(() -> { executors[i].execute(() -> {
var startTime = System.currentTimeMillis();
protobufTest(); protobufTest();
var endTime = System.currentTimeMillis();
atomic.addAndGet(endTime - startTime);
countdown.countDown(); countdown.countDown();
}); });
} }
countdown.await(); countdown.await();
System.out.println(StringUtils.format("----------------------------------------------------->protobuf total [time:{}]", atomic));
} }
public static final int threadNum = Runtime.getRuntime().availableProcessors() / 2; public static final int threadNum = Runtime.getRuntime().availableProcessors() / 2;