I've never been fond of Java, but DAMN!, look at this thing
http://www.javolution.org/
And the thing is free, as in FREE
From their site:
Quote:
Less restrictive licensing (dropped LGPL) [2.0.0]
|
http://www.javolution.org/doc/license.txt
The results below are on my P4 @2.8Ghz:
C:\download\javolution-3.0.4-bin\javolution-3.0>java -jar javolution.jar perf
Javolution - Java(TM) Solution for Real-Time and Embedded Systems
Version 3.0.4 (J2SE 1.4+) February 24 2005 (
http://javolution.org)
Benchmark...
////////////////////////////
// Package: javolution.io //
////////////////////////////
//////////////////////////////
// Package: javolution.lang //
//////////////////////////////
-- String/StringBuffer versus Text --
"Concatenates this line five hundred times (resulting in a text of about 50,000
characters or about 500 lines)."
String "+" operator: 901ms
StringBuffer "append" : 477╡s
Text "plus" (heap): 411╡s
Text "plus" (stack): 188╡s
Inserts 10 character at random location five thousand times (resulting in a text
of about 50,000 characters).
StringBuffer insert: 34ms
Text insert (heap): 6799╡s
Text insert (stack): 5999╡s
Delete 50,000 times 10 characters at random location from a 500,000 characters t
ext
StringBuffer delete: 4512ms
Text delete (heap): 677ms
Text delete (stack): 771ms
//////////////////////////////////
// Package: javolution.realtime //
//////////////////////////////////
-- Heap versus Stack Allocation (Pool-Context) --
Object heap creation: 40ns
Object stack creation: 22ns
char[128] heap creation: 2037ns
char[128] stack creation: 90ns
char[256] heap creation: 11╡s
char[256] stack creation: 90ns
//////////////////////////////
// Package: javolution.util //
//////////////////////////////
-- HashMap/LinkedMap versus FastMap --
class java.util.HashMap
Populates/clears map of 1000 entries: 121╡s
Access (get): 41ns
Iterates through all map entries: 53╡s
class java.util.LinkedHashMap
Populates/clears map of 1000 entries: 174╡s
Access (get): 54ns
Iterates through all map entries: 24╡s
class javolution.util.FastMap
Populates/clears map of 1000 entries: 123╡s
Access (get): 43ns
Iterates through all map entries: 26╡s
SIZE: 1000, TABLE LENGTH: 1024, AVG COLLISIONS: 36%, MAX SLOT OCCUPANCY: 5,
KEY COMPARATOR: Default
-- HashSet/LinkedHashSet/TreeSet versus FastSet --
class java.util.HashSet
Populates/clears set of 1000 elements: 122╡s
Access (contains): 51ns
Iterates through all set elements: 54╡s
class java.util.LinkedHashSet
Populates/clears set of 1000 elements: 168╡s
Access (contains): 47ns
Iterates through all set elements: 25╡s
class javolution.util.FastSet
Populates/clears set of 1000 elements: 131╡s
Access (contains): 49ns
Iterates through all set elements: 26╡s
-- ArrayList/LinkedList versus FastList --
class java.util.ArrayList
Populates/clears list of 1000 elements: 28╡s
Iterates through all list elements: 36╡s
class java.util.LinkedList
Populates/clears list of 1000 elements: 89╡s
Iterates through all list elements: 20╡s
class javolution.util.FastList
Populates/clears list of 1000 elements: 37╡s
Iterates through all list elements: 25╡s
/////////////////////////////
// Package: javolution.xml //
/////////////////////////////
-- Java(TM) Serialization --
Write Time: 64ms
Read Time: 25ms
-- XML Serialization (I/O Stream) --
Write Time: 23ms
Read Time: 43ms
-- XML Serialization (NIO ByteBuffer) --
Write Time: 19ms
Read Time: 27ms
More performance analysis in future versions...
C:\download\javolution-3.0.4-bin\javolution-3.0>