[ 
https://issues.apache.org/jira/browse/KAFKA-2992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15059241#comment-15059241
 ] 

Ismael Juma commented on KAFKA-2992:
------------------------------------

Cory, my suggestion is to add annotations to the log method, not switch to an 
annotation based approach. But trait methods can't be inlined (implementation 
limitation), so the logger would have to be a class.

Gwen, that seems fine.

> 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)

Reply via email to