harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "deven you (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-6095) [classlib][luni] Performance improvement patch for java.text.DateFormatSymbols.DateFormatSymbols(Locale)
Date Thu, 19 Feb 2009 10:01:02 GMT

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

deven you updated HARMONY-6095:
-------------------------------

    Attachment: hy-text_v2.diff

I have updated the patch so that DateFormatSymbols now can follow the compatibility. there
is a testcase for testing its serialization:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.text.DateFormatSymbols;
import java.util.Arrays;

import junit.framework.TestCase;

public class TestDfs extends TestCase {

    private ByteArrayOutputStream bao;

    private ObjectOutputStream oos;

    private ObjectInputStream ois;

    public TestDfs(String name) {
        super(name);
    }

    protected void setUp() throws Exception {
        super.setUp();
    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void test_Serialization_DateFormatSymbols() throws IOException,
            ClassNotFoundException {
        DateFormatSymbols dfs = new DateFormatSymbols();
        String[][] zoneStrings = dfs.getZoneStrings();
        oos = new ObjectOutputStream(bao = new ByteArrayOutputStream());
        oos.writeObject(dfs);
        ois = new ObjectInputStream(new ByteArrayInputStream(bao.toByteArray()));
        DateFormatSymbols result = (DateFormatSymbols) ois.readObject();
        boolean isEqual = true;
        String[][] rsZoneStrings = result.getZoneStrings();
        if (zoneStrings.length != rsZoneStrings.length) {
            isEqual = false;
           assertTrue("zoneStrings and rsZoneStrings is equal", isEqual);
           return;
        } 
        for (int i = 0; i < zoneStrings.length; i++) {
            if (!Arrays.equals(zoneStrings[i], rsZoneStrings[i])) {
                isEqual = false;
            }
        }
        assertTrue("zoneStrings and rsZoneStrings is equal", isEqual);

    }
}

> [classlib][luni] Performance improvement patch for java.text.DateFormatSymbols.DateFormatSymbols(Locale)
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6095
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6095
>             Project: Harmony
>          Issue Type: Improvement
>          Components: Classlib
>    Affects Versions: 5.0M8
>            Reporter: deven you
>         Attachments: hy-text.diff, hy-text_v2.diff
>
>   Original Estimate: 96h
>  Remaining Estimate: 96h
>
> this constructor spend much time on getZoneString(), howerver it is rarely used in real
world application. so I just delay loading the ZoneStrings 
> the testcase is :
> import java.text.DateFormatSymbols;
> import java.util.Locale;
> public class TestDateFormatSymbols {
>     public static void main(String[] args) {
>         long time = System.currentTimeMillis();
>         DateFormatSymbols dfs = new DateFormatSymbols(Locale.getDefault());
>         time = System.currentTimeMillis() - time;
>         
>         System.out.println("the total time is " + time + " ms!");
>     }
> }
> I have test on on Intel(R) Core(TM)2 Duo Cpu 2.4GHZ, 2.98GB Memory machine, the result
is as below:
> Harmony patch before: 1125 ms
> > Harmony patched: 78 ms

-- 
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