commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Colebourne" <scolebou...@btopenworld.com>
Subject Re: [collections] Faster than HashMap?
Date Tue, 11 Mar 2003 23:27:27 GMT
maybe the files will attach as text files...

----- Original Message -----
From: "Stephen Colebourne" <scolebourne@btopenworld.com>
To: "Jakarta Commons Developers List" <commons-dev@jakarta.apache.org>
Sent: Sunday, March 09, 2003 12:12 AM
Subject: Re: [collections] Faster than HashMap?


> Trying to attach the files again...
>
> ----- Original Message -----
> From: "Juozas Baliuka" <baliuka@centras.lt>
> To: "Jakarta Commons Developers List" <commons-dev@jakarta.apache.org>
> Sent: Saturday, March 08, 2003 7:09 PM
> Subject: Re: [collections] Faster than HashMap?
>
>
> >
> > No file is attached.
> > It will be faster on "small" maps, but  method code size is limited,
65535
> > bytes or something like this and it needs some workaround.
> >
> > ----- Original Message -----
> > From: "Stephen Colebourne" <scolebourne@btopenworld.com>
> > To: "Jakarta Commons Developers List" <commons-dev@jakarta.apache.org>
> > Sent: Saturday, March 08, 2003 7:43 PM
> > Subject: [collections] Faster than HashMap?
> >
> >
> > > I'd had an idea for a way to create a map thats faster to read than a
> > > HashMap...
> > >
> > > The idea was to bytecode generate the mapping from the hashcode to the
> > > index:
> > > public int lookupIndex(Object key) {
> > >   switch (key.hashCode()) {
> > >     case -1682:  // hashcode
> > >      return 2; // index of Map.Entry
> > >     case 86929  // hashcode
> > >      return 0; // index of Map.Entry
> > >     case 1596969:  // hashcode
> > >      return 1; // index of Map.Entry
> > >   }
> > >   return -1;
> > > }
> > >
> > > Simple? No hashcode collisions. Should go faster....
> > >
> > > Attached are the java files. My initial testing was with a size 3 map,
> and
> > > that goes about 40% faster. Unfortunately, the bytecode map's
> performance
> > > degenerates with size. Depending on exact data size 50 entries or more
> may
> > > be slower, gradually getting slower.
> > >
> > > Of course now I realise that the switch statement in bytecode isn't
> > magical
> > > and is just doing a binary search, so was always going to suffer this
> > > problem. What an idiot I am.
> > >
> > > If anyone else wants to take a look and see if I've missed something,
or
> > has
> > > another bright idea triggered by this then feel free to take a look at
> the
> > > code. Otherwise, its not worth adding to [collections]. :-((((
> > >
> > > Stephen
> > >
> > >
> >
> >
>
> --------------------------------------------------------------------------
> --
> > ----
> >
> >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> >
>
>


----------------------------------------------------------------------------
----


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org

Mime
View raw message