harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Shipilev" <aleksey.shipi...@gmail.com>
Subject Re: [general][performance] Serialization patches need committer attention
Date Thu, 17 Apr 2008 14:02:15 GMT
Hi,

There are two additional issues waiting for committers attention:
https://issues.apache.org/jira/browse/HARMONY-5756
https://issues.apache.org/jira/browse/HARMONY-5718

Can anyone review and commit them?

Thanks,
Aleksey.

On Tue, Apr 15, 2008 at 5:27 PM, Aleksey Shipilev
<aleksey.shipilev@gmail.com> wrote:
> Tony,
>
>  I had fixed the issues with JUnit tests, it was my oversight about
>  handling NoSuchFieldError exceptions.
>  Now all seem to be OK, LUNI tests were passed.
>
>  Thanks,
>  Aleksey.
>
>  On Tue, Apr 15, 2008 at 11:14 AM, Aleksey Shipilev
>
>
> <aleksey.shipilev@gmail.com> wrote:
>  > Hm, I didn't expect this, will take a look, thanks.
>  >
>  >
>  >
>  >  On Tue, Apr 15, 2008 at 11:00 AM, Tony Wu <wuyuehao@gmail.com> wrote:
>  >  > Aleksey,
>  >  >  I think keep the benchmark somewhere such as JIRA is also ok.
>  >  >
>  >  >  7 serialization related errors in Collections2Test after applied your
>  >  >  patch.  All of them looked like below.
>  >  >
>  >  >  zeroLengthElementArray
>  >  >
>  >  >  java.lang.NoSuchFieldError: zeroLengthElementArray at
>  >  >  org.apache.harmony.misc.accessors.ObjectAccessor.getFieldID(ObjectAccessor.java:54)
>  >  >  at org.apache.harmony.misc.accessors.ObjectAccessor.getFieldID(ObjectAccessor.java:56)
>  >  >  at java.io.ObjectStreamField.getFieldID(ObjectStreamField.java:59) at
>  >  >  java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1133)
>  >  >  at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:433)
>  >  >  at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1415)
>  >  >  at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1322)
>  >  >  at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1978)
>  >  >  at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:821)
>  >  >  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2130)
>  >  >  at java.io.ObjectInputStream.readObject(ObjectInputStream.java:285) at
>  >  >  tests.util.SerializationTester.readObject(SerializationTester.java:171)
>  >  >  at tests.util.SerializationTester.assertCompabilityEquals(SerializationTester.java:142)
>  >  >  at org.apache.harmony.luni.tests.java.util.Collections2Test.test_checkedCollectionSerializationCompatability(Collections2Test.java:418)
>  >  >  at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
>  >  >
>  >  >
>  >  >
>  >  >
>  >  >  On 4/15/08, Aleksey Shipilev <aleksey.shipilev@gmail.com> wrote:
>  >  >  > Thanks, Tony!
>  >  >  >
>  >  >  > There is microbenchmark in [1], is it too big for regression test?
>  >  >  >
>  >  >  > Thanks,
>  >  >  > Aleksey.
>  >  >  >
>  >  >  > [1] https://issues.apache.org/jira/browse/HARMONY-5632
>  >  >  >
>  >  >  > On Tue, Apr 15, 2008 at 7:08 AM, Tony Wu <wuyuehao@gmail.com>
wrote:
>  >  >  > > Hi, Aleksey
>  >  >  > >  I'm looking at 5722. I agree with you on leveraging the Accessor
but I
>  >  >  > >  think it would be good if you can post some micro-benchmark on
this
>  >  >  > >  JIRA so that we can utilize it as regression test in future.
>  >  >  > >
>  >  >  > >
>  >  >  > >
>  >  >  > >  On 4/15/08, Aleksey Shipilev <aleksey.shipilev@gmail.com>
wrote:
>  >  >  > >  > Hi all,
>  >  >  > >  >
>  >  >  > >  > As you might noticed, there is active work on serialization
>  >  >  > >  > performance improvements [1]. So far we had committed 4
patches
>  >  >  > >  > concerning scalability and boosted the performance on multi-threaded
>  >  >  > >  > serialization benchmarks more than 2x times. And this is
not the end
>  >  >  > >  > of the journey: more issues coming.
>  >  >  > >  >
>  >  >  > >  > Dear committers, can you please review and commit the patches
in ready JIRAs?
>  >  >  > >  > I will be happy if these two committed:
>  >  >  > >  >
>  >  >  > >  >  a. [classlib][luni][performance] ObjectInputStream/ObjectOutputStream
>  >  >  > >  > can use optimized API for accessing fields - available at
[2]
>  >  >  > >  > This issue moves the setField/getField functionality to
ObjectAccessor
>  >  >  > >  > utility class. This eliminates one serious problem: creation
of string
>  >  >  > >  > during field name lookup on native side. The second advantage
is that
>  >  >  > >  > this solution checks security on accessor creation rather
than on
>  >  >  > >  > every call (like Reflection API does). This improvement
gives another
>  >  >  > >  > 30-120% boost for serialization workload.
>  >  >  > >  >
>  >  >  > >  > I expect more with rewriting these accessors on magics,
thus
>  >  >  > >  > eliminating JNI overhead and native-side work. Those who
interested in
>  >  >  > >  > this topic, feel free to join in corresponding JIRA [3].
>  >  >  > >  >
>  >  >  > >  >  b. [classlib][luni][performance] j.u.IdentityHashMap ariphmetic
>  >  >  > >  > improvements - available at [4]
>  >  >  > >  > After the moving of ObjectStreamClass cache to ThreadLocalCache
[5],
>  >  >  > >  > performance of serialization depends on ThreadLocal performance
and
>  >  >  > >  > then on IdentityHashMap performance. Simple benchmark shows
that
>  >  >  > >  > ThreadLocal performance is devastating: 50x slower than
Sun 1.6.0_05
>  >  >  > >  > [6]. This is very first ready patch from that chain of issues.
It
>  >  >  > >  > brings up +300% boost on ThreadLocal benchmark and +10%
boost to
>  >  >  > >  > serialization benchmark.
>  >  >  > >  >
>  >  >  > >  > Thanks,
>  >  >  > >  > Aleksey.
>  >  >  > >  >
>  >  >  > >  > [1] https://issues.apache.org/jira/browse/HARMONY-5632
>  >  >  > >  > [2] https://issues.apache.org/jira/browse/HARMONY-5722 (ready)
>  >  >  > >  > [3] https://issues.apache.org/jira/browse/HARMONY-5725
>  >  >  > >  > [4] https://issues.apache.org/jira/browse/HARMONY-5718 (ready)
>  >  >  > >  > [5] https://issues.apache.org/jira/browse/HARMONY-5633
>  >  >  > >  > [6] https://issues.apache.org/jira/browse/HARMONY-5703
>  >  >  > >  >
>  >  >  > >
>  >  >  > >
>  >  >  > >  --
>  >  >  > >  Tony Wu
>  >  >  > >  China Software Development Lab, IBM
>  >  >  > >
>  >  >  >
>  >  >
>  >  >
>  >  >  --
>  >  >
>  >  >
>  >  > Tony Wu
>  >  >  China Software Development Lab, IBM
>  >  >
>  >
>

Mime
View raw message