[ https://issues.apache.org/jira/browse/KAFKA-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059227#comment-15059227 ]
Cory Kolbeck commented on KAFKA-2992: ------------------------------------- In looking around the codebase, this seemed to be the only place this issue could cause problems during normal operation, all the others were outside the tight loop that's half the issue here. Moving from the current approach to an annotation based one might be a fair amount of work for only marginal gain. > Trace log statements in the replica fetcher inner loop create large amounts > of garbage > -------------------------------------------------------------------------------------- > > Key: KAFKA-2992 > URL: https://issues.apache.org/jira/browse/KAFKA-2992 > Project: Kafka > Issue Type: Improvement > Components: core > Affects Versions: 0.8.2.1, 0.9.0.0 > Environment: Centos 6, Java 1.8.0_20 > Reporter: Cory Kolbeck > Priority: Minor > Labels: garbage, logging, trace > Fix For: 0.8.1.2, 0.10.0.0 > > > We're seeing some GC pause issues in production, and during our investigation > found that the thunks created during invocation of three trace statements > guarded in the attached PR were responsible for ~98% of all allocations by > object count and ~90% by size. While I'm not sure that this was actually the > cause of our issue, it seems prudent to avoid useless allocations in a tight > loop. > I realize that the trace() call does its own guarding internally, however > it's insufficient to prevent allocation of the thunk. I can work on getting > profiling results to attach here, but I used YourKit and the license has > since expired. -- This message was sent by Atlassian JIRA (v6.3.4#6332)