Denis Chudov created IGNITE-28312:
-------------------------------------

             Summary: Heap allocations caused by debug logging that is not 
actually used
                 Key: IGNITE-28312
                 URL: https://issues.apache.org/jira/browse/IGNITE-28312
             Project: Ignite
          Issue Type: Bug
            Reporter: Denis Chudov


Usages of debug logging on hot path should be revised.

Examples:
One
{code:java}
Stack Trace Count   Percentage void java.lang.Thread.run() 1   100 % void 
java.lang.Thread.runWith(Object, Runnable) 1   100 % void 
java.util.concurrent.ThreadPoolExecutor$Worker.run()   1   100 % void 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)   
1   100 % void 
org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
  1   100 % void 
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
 ErrorReplicaResponse)    1   100 % boolean 
java.util.concurrent.CompletableFuture.completeExceptionally(Throwable) 1   100 
% void java.util.concurrent.CompletableFuture.postComplete()  1   100 % 
CompletableFuture java.util.concurrent.CompletableFuture$UniHandle.tryFire(int) 
1   100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object, 
BiFunction, CompletableFuture$UniHandle)   1   100 % Object 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167068.apply(Object,
 Object)  1   100 % CompletableFuture 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$trackingInvoke$13(int,
 InternalTransaction, int, ReplicaRequest, PendingTxPartitionEnlistment, 
BiPredicate, Object, Throwable)  1   100 % CompletableFuture 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.trackingInvoke(InternalTransaction,
 int, Function, boolean, PendingTxPartitionEnlistment, BiPredicate, int)    1   
100 % CompletableFuture 
org.apache.ignite.internal.replicator.ReplicaService.invoke(String, 
ReplicaRequest)   1   100 % CompletableFuture 
org.apache.ignite.internal.replicator.ReplicaService.sendToReplica(String, 
ReplicaRequest)    1   100 % CompletableFuture 
org.apache.ignite.internal.replicator.ReplicaService.sendToReplicaRaw(String, 
ReplicaRequest) 1   100 % CompletableFuture 
org.apache.ignite.internal.network.MessagingService.invoke(String, 
NetworkMessage, long)  1   100 % CompletableFuture 
org.apache.ignite.internal.network.wrapper.JumpToExecutorByConsistentIdAfterSend.invoke(String,
 ChannelType, NetworkMessage, long)    1   100 % CompletableFuture 
org.apache.ignite.internal.network.DefaultMessagingService.invoke(String, 
ChannelType, NetworkMessage, long)  1   100 % CompletableFuture 
org.apache.ignite.internal.network.DefaultMessagingService.invoke0(InternalClusterNode,
 ChannelType, NetworkMessage, long, boolean)   1   100 % void 
org.apache.ignite.internal.network.DefaultMessagingService.sendToSelf(NetworkMessage,
 Long)    1   100 % void 
org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000800486c98.onReceived(NetworkMessage,
 InternalClusterNode, Long)  1   100 % void 
org.apache.ignite.internal.replicator.ReplicaManager.onReplicaMessageReceived(NetworkMessage,
 InternalClusterNode, Long)   1   100 % void 
org.apache.ignite.internal.replicator.ReplicaManager.handleReplicaRequest(ReplicaRequest,
 InternalClusterNode, Long)   1   100 % CompletableFuture 
java.util.concurrent.CompletableFuture.handle(BiFunction) 1   100 % 
CompletableFuture 
java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction)   1 
  100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object, 
BiFunction, CompletableFuture$UniHandle)   1   100 % Object 
org.apache.ignite.internal.replicator.ReplicaManager$$Lambda.0x0000000801060438.apply(Object,
 Object)    1   100 % Object 
org.apache.ignite.internal.replicator.ReplicaManager.lambda$handleReplicaRequest$4(boolean,
 ReplicaRequest, String, Long, ReplicationGroupId, ReplicaResult, Throwable)  1 
  100 % void 
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.debug(String, 
String, Throwable, Object[]) 1   100 % void 
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.logInternal(String, 
Supplier, Throwable, System$Logger$Level)  1   100 % Object 
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl$$Lambda.0x000000080148d7c8.get()
 1   100 % String 
org.apache.ignite.internal.logger.IgniteThrottledLoggerImpl.lambda$debug$10(String,
 Object[])    1   100 % String 
org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, Object[])  
 1   100 % void 
org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
 Object, HashSet)    1   100 % void 
org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
 Object)  1   100 % String 
org.apache.ignite.internal.partition.replicator.network.replication.ReadWriteSingleRowPkReplicaRequestImpl.toString()
    1   100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
Object)    1   100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl(Class, 
StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int)    1   
100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toStringImpl0(Class, 
StringBuilderLimitedLength, Object, Object[], Object[], boolean[], int)   1   
100 % void 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(StringBuilderLimitedLength,
 Class, Object)  1   100 % StringBuilderLimitedLength 
org.apache.ignite.internal.tostring.StringBuilderLimitedLength.app(Object)   1  
 100 % IgniteStringBuilder 
org.apache.ignite.internal.lang.IgniteStringBuilder.app(Object) 1   100 % 
StringBuilder java.lang.StringBuilder.append(Object)    1   100 % String 
java.lang.String.valueOf(Object) 1   100 % String 
java.nio.ByteBuffer.toString()   1   100 % StringBuilder 
java.lang.StringBuilder.append(int)   1   100 % AbstractStringBuilder 
java.lang.AbstractStringBuilder.append(int)   1   100 % void 
java.lang.AbstractStringBuilder.ensureCapacityInternal(int)    1   100 % byte[] 
java.util.Arrays.copyOf(byte[], int) 1   100 %{code}
and more
 
{code:java}
Stack Trace Count   Percentage void java.lang.Thread.run() 1   100 % void 
java.lang.Thread.runWith(Object, Runnable) 1   100 % void 
java.util.concurrent.ThreadPoolExecutor$Worker.run()   1   100 % void 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)   
1   100 % void 
org.apache.ignite.internal.replicator.ReplicaService$$Lambda.0x0000000800f9c228.run()
  1   100 % void 
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$6(CompletableFuture,
 ErrorReplicaResponse)    1   100 % boolean 
java.util.concurrent.CompletableFuture.completeExceptionally(Throwable) 1   100 
% void java.util.concurrent.CompletableFuture.postComplete()  1   100 % 
CompletableFuture java.util.concurrent.CompletableFuture$UniHandle.tryFire(int) 
1   100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object, 
BiFunction, CompletableFuture$UniHandle)   1   100 % Object 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl$$Lambda.0x0000000801167b80.apply(Object,
 Object)  1   100 % CompletableFuture 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$16(boolean,
 InternalTransaction, boolean, Object, Throwable) 1   100 % CompletableFuture 
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.rollbackAsync()   1 
  100 % CompletableFuture 
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(boolean, 
HybridTimestamp, boolean, boolean)    1   100 % CompletableFuture 
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(boolean,
 HybridTimestamp, boolean, boolean, boolean)   1   100 % CompletableFuture 
java.util.concurrent.CompletableFuture.handle(BiFunction) 1   100 % 
CompletableFuture 
java.util.concurrent.CompletableFuture.uniHandleStage(Executor, BiFunction)   1 
  100 % boolean java.util.concurrent.CompletableFuture.uniHandle(Object, 
BiFunction, CompletableFuture$UniHandle)   1   100 % Object 
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl$$Lambda.0x00000008011fe3c8.apply(Object,
 Object) 1   100 % CompletableFuture 
org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.lambda$finishInternal$6(boolean,
 boolean, Void, Throwable)    1   100 % CompletableFuture 
org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(HybridTimestampTracker, 
ZonePartitionId, boolean, boolean, boolean, boolean, Map, UUID)   1   100 % 
void org.apache.ignite.internal.logger.IgniteLoggerImpl.debug(String, Object[]) 
1   100 % void 
org.apache.ignite.internal.logger.IgniteLoggerImpl.logInternal(System$Logger$Level,
 String, Throwable, Object[])   1   100 % String 
org.apache.ignite.internal.lang.IgniteStringFormatter.format(String, Object[])  
 1   100 % void 
org.apache.ignite.internal.lang.IgniteStringFormatter.deeplyAppendParameter(StringBuilder,
 Object, HashSet)    1   100 % void 
org.apache.ignite.internal.lang.IgniteStringFormatter.safeObjectAppend(StringBuilder,
 Object)  1   100 % String java.util.concurrent.ConcurrentHashMap.toString()    
1   100 % StringBuilder java.lang.StringBuilder.append(Object)    1   100 % 
String java.lang.String.valueOf(Object) 1   100 % String 
org.apache.ignite.internal.tx.PendingTxPartitionEnlistment.toString()    1   
100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
Object, String)    1   100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
Object, String, Object)    1   100 % String 
org.apache.ignite.internal.tostring.IgniteToStringBuilder.toString(Class, 
Object, String, Object, boolean)   1   100 %{code}
 
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to