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 Tue, 15 Apr 2008 13:27:16 GMT
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