[jira] [Resolved] (KAFKA-4424) Make serializer classes final

2016-11-23 Thread Matthias Bechtold (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias Bechtold resolved KAFKA-4424.
--
Resolution: Not A Problem

> Make serializer classes final
> -
>
> Key: KAFKA-4424
> URL: https://issues.apache.org/jira/browse/KAFKA-4424
> Project: Kafka
>  Issue Type: Improvement
>  Components: clients
>Reporter: Matthias Bechtold
>Priority: Minor
> Attachments: FinalTest.java, FinalTestReversed.java
>
>
> Implementations of simple serializers / deserializers should be final to 
> prevent JVM method call overhead.
> See also:
> https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls
> This breaks the API slightly, inheritors must change to generic interfaces 
> Serializer / Deserializer. But architecture-wise final serialization classes 
> make the most sense to me.
> So what do you think?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-4424) Make serializer classes final

2016-11-23 Thread Matthias Bechtold (JIRA)

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

Matthias Bechtold commented on KAFKA-4424:
--

I see, thank you for your time.

I did not think right away that the order of tests would matter.

But this was very interesting to say the least, I think now that I was wrong 
about the final keyword there (interesting article from IBM there).

> Make serializer classes final
> -
>
> Key: KAFKA-4424
> URL: https://issues.apache.org/jira/browse/KAFKA-4424
> Project: Kafka
>  Issue Type: Improvement
>  Components: clients
>Reporter: Matthias Bechtold
>Priority: Minor
> Attachments: FinalTest.java, FinalTestReversed.java
>
>
> Implementations of simple serializers / deserializers should be final to 
> prevent JVM method call overhead.
> See also:
> https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls
> This breaks the API slightly, inheritors must change to generic interfaces 
> Serializer / Deserializer. But architecture-wise final serialization classes 
> make the most sense to me.
> So what do you think?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (KAFKA-4424) Make serializer classes final

2016-11-23 Thread Matthias Bechtold (JIRA)

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

Matthias Bechtold edited comment on KAFKA-4424 at 11/23/16 4:50 PM:


Thank you for your feedback, I can totally see your point.

So I did some tests concerning the *producer* throughput, using JMH:

https://github.com/MatthiasBechtold/kafka-throughput-test

I think performance somewhat varies based on test envrionment/method.

Anyways I experienced a small performance gain after 500 seconds warmup 
(between 0.26% - 5.5%) , which is of course somewhat greater in warmup phase 
(this also helps, doesn't it?).

This is not an end-to-end test as proposed, but I did not figure out how to 
quickly implement such test. This test should also provide at least some 
evidence towards possible performance gains.


was (Author: matthiasbechtold):
Thank you for your feedback, I can totally see your point.

So I did some tests concerning the *producer* throughput, using JMH:

https://github.com/MatthiasBechtold/kafka-throughput-test

I think performance somewhat varies based on test envrionment/method.

Anyways I experienced a small performance gain (between 0,26% - 5,5%) , which 
is of course somewhat greater in warmup phase (this also helps, doesn't it?).

This is not an end-to-end test as proposed, but I did not figure out how to 
quickly implement such test. This test should also provide at least some 
evidence towards possible performance gains.

> Make serializer classes final
> -
>
> Key: KAFKA-4424
> URL: https://issues.apache.org/jira/browse/KAFKA-4424
> Project: Kafka
>  Issue Type: Improvement
>  Components: clients
>Reporter: Matthias Bechtold
>Priority: Minor
>
> Implementations of simple serializers / deserializers should be final to 
> prevent JVM method call overhead.
> See also:
> https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls
> This breaks the API slightly, inheritors must change to generic interfaces 
> Serializer / Deserializer. But architecture-wise final serialization classes 
> make the most sense to me.
> So what do you think?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-4424) Make serializer classes final

2016-11-23 Thread Matthias Bechtold (JIRA)

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

Matthias Bechtold commented on KAFKA-4424:
--

Thank you for your feedback, I can totally see your point.

So I did some tests concerning the *producer* throughput, using JMH:

https://github.com/MatthiasBechtold/kafka-throughput-test

I think performance somewhat varies based on test envrionment/method.

Anyways I experienced a small performance gain (between 0,26% - 5,5%) , which 
is of course somewhat greater in warmup phase (this also helps, doesn't it?).

This is not an end-to-end test as proposed, but I did not figure out how to 
quickly implement such test. This test should also provide at least some 
evidence towards possible performance gains.

> Make serializer classes final
> -
>
> Key: KAFKA-4424
> URL: https://issues.apache.org/jira/browse/KAFKA-4424
> Project: Kafka
>  Issue Type: Improvement
>  Components: clients
>Reporter: Matthias Bechtold
>Priority: Minor
>
> Implementations of simple serializers / deserializers should be final to 
> prevent JVM method call overhead.
> See also:
> https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls
> This breaks the API slightly, inheritors must change to generic interfaces 
> Serializer / Deserializer. But architecture-wise final serialization classes 
> make the most sense to me.
> So what do you think?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (KAFKA-4424) Make serializer classes final

2016-11-20 Thread Matthias Bechtold (JIRA)
Matthias Bechtold created KAFKA-4424:


 Summary: Make serializer classes final
 Key: KAFKA-4424
 URL: https://issues.apache.org/jira/browse/KAFKA-4424
 Project: Kafka
  Issue Type: Improvement
  Components: clients
Reporter: Matthias Bechtold
Priority: Minor


Implementations of simple serializers / deserializers should be final to 
prevent JVM method call overhead.
See also:
https://wiki.openjdk.java.net/display/HotSpot/VirtualCalls

This breaks the API slightly, inheritors must change to generic interfaces 
Serializer / Deserializer. But architecture-wise final serialization classes 
make the most sense to me.

So what do you think?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)