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

Paul Loy commented on CASSANDRA-2820:
-------------------------------------

The problem with extending is we're then expecting the actual implementation to 
work the same as Harmony's implementation does. At present they look pretty 
compatible. But who knows what the future may bring.

So I think we have to use a carbon-copy of Harmony's BAIS to ensure JRE compat. 
We can still extend it so that Sylvain's suggestion holds, but in real terms 
it'll override all methods so won't really extend.

> Re-introduce FastByteArrayInputStream (and Output equivalent)
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-2820
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2820
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.8.0
>         Environment: n/a
>            Reporter: Paul Loy
>            Priority: Minor
>              Labels: bytearrayinputstream, bytearrayoutputstream, license, 
> synchronized
>         Attachments: fast_bytearray_iostreams_harmony-patch-2.txt
>
>
> In https://issues.apache.org/jira/browse/CASSANDRA-37 
> FastByteArrayInputStream and FastByteArrayOutputStream were removed due to 
> being code copied from the JDK and then subsequently modified. The JDK 
> license is incompatible with Apache 2 license so the code had to go.
> I have since had a look at the performance of the JDK ByteArrayInputStream 
> and a FastByteArrayInputStream (i.e. one with synchronized methods made 
> un-synchronized) and seen the difference is significant.
> After a warmup-period of >10000 loops I get the following for 10000 loops 
> through a 128000 byte array:
> bais : 3513ms
> fbais: 72ms
> This varies depending on the OS, machine and Java version, but it's always in 
> favour of the FastByteArrayInputStream as you might expect.
> Then, at Jonathan Ellis' suggestion, I tried this using a modified Apache 
> Harmony ByteArrayInputStream - i.e. one whose license is compatible - and the 
> results were the same. A significant boost.
> I will attach a patch with changes for the 0.8.0 tag.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to