harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Zhou (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6664) [classlib][beans] Poor performance of java.beans.XMLEncoder.writeObject() method
Date Wed, 29 Sep 2010 08:19:55 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12916072#action_12916072
] 

Kevin Zhou commented on HARMONY-6664:
-------------------------------------

After applying this patch, the testing results of perf test is given as follows:
*****INDEX=5*****
writing 5000 of integers	encode time:562     	flush time:64
writing 10000 of integers	encode time:1190 	flush time:96
writing 15000 of integers	encode time:1913 	flush time:170
writing 20000 of integers	encode time:2903 	flush time:293
writing 25000 of integers	encode time3506 	flush time:447

The time reduces the time from 30 seconds to 3 seconds.

> [classlib][beans] Poor performance of java.beans.XMLEncoder.writeObject() method
> --------------------------------------------------------------------------------
>
>                 Key: HARMONY-6664
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6664
>             Project: Harmony
>          Issue Type: Task
>          Components: Classlib
>    Affects Versions: 5.0M15
>            Reporter: Kevin Zhou
>            Assignee: Kevin Zhou
>             Fix For: 6.0M4
>
>         Attachments: HARMONY-6664.diff, HARMONY-6664.v2.diff
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> Given a test case [1], the performance of java.beans.XMLEncoder.writeObject() is very
poor.
> ***************INDEX=5*****************************
> writing 5000 of integers	encode time:2025	flush time:40
> writing 10000 of integers	encode time:6242	flush time:87
> writing 15000 of integers	encode time:12464	flush time:137
> writing 20000 of integers	encode time:21949	flush time:166
> writing 25000 of integers	encode time:32119	flush time:219
> For writing a list of 25000 integers, XMLEncoder.writeObject() takes about half a minute.
> [1] Performance test case:
> public class XMLEncoderWriteObjectPerfTest {
>     public static List<Integer> integerListOf(int length) {
>         List<Integer> integerList = new ArrayList<Integer>();
>         for (int index = 0; index < length; index++) {
>             integerList.add(index);
>         }
>         return integerList;
>     }
>     public static void timeOfXMLEncoder(int length) {
>         ByteArrayOutputStream baos = new ByteArrayOutputStream();
>         XMLEncoder xmlEncoder = new XMLEncoder(baos);
>         System.out.print("writing " + length + " of integers\t");
>         Object obj = integerListOf(length);
>         long start = System.currentTimeMillis();
>         xmlEncoder.writeObject(obj);
>         System.out.print("encode time:" + (System.currentTimeMillis() - start));
>         start = System.currentTimeMillis();
>         xmlEncoder.close();
>         System.out.println("\tflush time:"
>                 + (System.currentTimeMillis() - start));
>     }
>     public static void main(String[] args) {
>         for (int index = 0; index < 10; index++) {
>             System.out.println("*****INDEX=" + index + "*****");
>             timeOfXMLEncoder(5000);
>             timeOfXMLEncoder(10000);
>             timeOfXMLEncoder(15000);
>             timeOfXMLEncoder(20000);
>             timeOfXMLEncoder(25000);
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message