Sebb,
Do you want me to provide a patch with ConcurrentHashMap where I will have
to handle null keys and values (not same behaviour as HashMap) or we forget
about this approach ?
Regards
Philippe

On Mon, Oct 3, 2011 at 1:58 PM, Philippe Mouawad <philippe.moua...@gmail.com
> wrote:

> Hello,
> Just a little update on my test.
> I added a clear and gc before each Map instanciation and results are
> different:
>
>    - HashMapput:645
>    - ConcurrentHashMapput:832
>    - ConcurrentReaderHashMapput:620
>    - HashMap get:17
>    - ConcurrentHashMap get:32
>    - ConcurrentReaderHashMap get:60
>
>
> So it kind of closes the debate, sorry for disturbance.
> Regards
> Philippe
>
>
>
>
> public class TestMap {
>
>     public static void main(String[] args) {
>         StopWatch timer = new StopWatch();
>
>         Map map = new HashMap();
>         testPut(timer, map, "HashMap");
>         timer.reset();
>
>         map.clear();
>         System.gc();
>
>         map = new ConcurrentHashMap();
>         testPut(timer, map, "ConcurrentHashMap");
>         timer.reset();
>
>         map.clear();
>         System.gc();
>
>         map = new ConcurrentReaderHashMap();
>         testPut(timer, map, "ConcurrentReaderHashMap");
>         timer.reset();
>
>
>         map.clear();
>         System.gc();
>
>         map = new HashMap();
>         testGet(timer, map, "HashMap");
>         timer.reset();
>
>         map.clear();
>         System.gc();
>
>         map = new ConcurrentHashMap();
>         testGet(timer, map, "ConcurrentHashMap");
>         timer.reset();
>
>         map.clear();
>         System.gc();
>
>         map = new ConcurrentReaderHashMap();
>         testGet(timer, map, "ConcurrentReaderHashMap");
>         timer.reset();
>     }
>
>     /**
>      * @param timer
>      */
>     private static void testGet(StopWatch timer, Map map, String type) {
>         timer.start();
>         for (int i = 0; i < 1000000; i++) {
>             map.get(i);
>         }
>         timer.stop();
>         System.out.println(type+" get:"+timer.getTime());
>     }
>
>     /**
>      * @param timer
>      */
>     private static void testPut(StopWatch timer, Map map, String type) {
>         timer.start();
>         for (int i = 0; i < 1000000; i++) {
>             map.put(i,i);
>         }
>         timer.stop();
>         System.out.println(type+"put:"+timer.getTime());
>     }
>
>
> Regards
> Philippe
>
>
> On Mon, Oct 3, 2011 at 1:37 PM, sebb <seb...@gmail.com> wrote:
>
>> On 3 October 2011 12:15, Rainer Jung <rainer.j...@kippdata.de> wrote:
>> > On 02.10.2011 23:17, Philippe Mouawad wrote:
>> >> Ok, hope we can do the same.
>> >
>> > See https://issues.apache.org/jira/browse/XMLBEANS-447
>> >
>> > We are not the only people, who doubt it's correct to include that class
>> ...
>> >
>> > There was also a discussion some time ago in another ASF project,
>> > because the Sun license which is cited by Doug Lea has a "no use in
>> > nuclear facilities clause", which make it non-usable as an Open Source
>> > license.
>> >
>> > It looks like we are stuck here.
>>
>> Yes, apart from the binary option which brings in lots of unneeded code.
>>
>> > And the mentioning of the Harmony class in the above cited issue is a
>> > red herring. Diffing it with the JDK 5 standard ConcurrentHashMap shows
>> > little difference, so I doubt it will be much faster (though I didn't
>> > inspect the delta in detail).
>>
>> I think the Harmony class was only mentioned as a means of supporting
>> Java 1.4, not as an alternative faster implementation.
>>
>> >> I must say I don't understand why ConcurrentReaderHashMap is not in
>> JDK.
>> >
>> > There's a discussion list for JSR166 (the concurrency stuff lead by Doug
>> > Lea) mentioned on the JSR 166 page maintained by Doug Lea. So maybe you
>> > can post a technical question there (what's the right class that solve
>> > the following problem ... and doesn't have sun licensing restrictions).
>> >
>> > Regards,
>> >
>> > Rainer
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org
>> > For additional commands, e-mail: dev-h...@jakarta.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@jakarta.apache.org
>> For additional commands, e-mail: dev-h...@jakarta.apache.org
>>
>>
>
>
> --
> Cordialement.
> Philippe Mouawad.
>
>
>
>


-- 
Cordialement.
Philippe Mouawad.

Reply via email to