Use @Singleton instead of @ApplicationScoped in hot paths

Definitely a microoptimization but noticeable on the flamegraph
This commit is contained in:
2025-04-15 16:29:49 +02:00
parent 7061117f56
commit 04c5685fd5
9 changed files with 18 additions and 9 deletions

View File

@@ -6,10 +6,11 @@ import com.usatiuk.objects.iterators.CloseableKvIterator;
import com.usatiuk.objects.iterators.IteratorStart;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.util.Optional;
@ApplicationScoped
@Singleton
public class CurrentTransaction implements Transaction {
@Inject
TransactionManager transactionManager;

View File

@@ -3,11 +3,12 @@ package com.usatiuk.objects.transaction;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.apache.commons.lang3.tuple.Pair;
import java.util.Collection;
@ApplicationScoped
@Singleton
public class TransactionManagerImpl implements TransactionManager {
private static final ThreadLocal<TransactionPrivate> _currentTransaction = new ThreadLocal<>();
@Inject

View File

@@ -7,8 +7,9 @@ import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class DeleterTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -7,8 +7,9 @@ import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class RefcounterTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -8,8 +8,9 @@ import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class RemoteObjPusherTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -9,8 +9,9 @@ import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class JMapHolderRefcounterTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -9,8 +9,9 @@ import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class JMapRefcounterTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -8,9 +8,10 @@ import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@ApplicationScoped
@Singleton
public class AutosyncTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;

View File

@@ -14,8 +14,9 @@ import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
@ApplicationScoped
@Singleton
public class PeerInfoCertUpdateTxHook implements PreCommitTxHook {
@Inject
Transaction curTx;