C:\javolution-3.7>java -version java version "1.6.0-beta2" Java(TM) SE Runtime Environment (build 1.6.0-beta2-b76) Java HotSpot(TM) Client VM (build 1.6.0-beta2-b76, mixed mode, sharing) C:\javolution-3.7>java -Xms512M -Xmx512M -jar javolution.jar perf Javolution - Java(TM) Solution for Real-Time and Embedded Systems Version 3.7.6 (J2SE 1.5+) March 20 2006 (http://javolution.org) Benchmark... ////////////////////////////// // Package: javolution.lang // ////////////////////////////// -- String/StringBuffer versus Text -- "Concatenates this line 1000 times (resulting in a text of about 80,000 characters)" String "+" operator: 263.5 ms StringBuffer "append" : 422.4 us Text "concat" (heap): 444.2 us Text "concat" (stack): 393.2 us Inserts one character at random locations 1,000 times to the 80,000 characters text. StringBuffer insert: 25.97 ms Text insert (heap): 2.178 ms Text insert (stack): 1.639 ms Delete 1,000 times one character at random location from the 80,000 characters text. StringBuffer delete: 25.47 ms Text delete (heap): 1.769 ms Text delete (stack): 1.220 ms ////////////////////////////////// // Package: javolution.realtime // ////////////////////////////////// -- Heap versus Stack Allocation (Pool-Context) -- Small standard object heap creation: 18.64 ns Small real-time object stack creation: 18.06 ns char[128] heap creation: 150.8 ns char[128] stack creation: 85.40 ns char[256] heap creation: 298.9 ns char[256] stack creation: 80.77 ns ////////////////////////////// // Package: javolution.util // ////////////////////////////// (new) : The collection is created (using the new keyword), populated, then discarded (throw-away collections). (recycled) : The collection is cleared, populated, then reused (static collections or throw-away collections in PoolContext). -- FastTable versus ArrayList -- class javolution.util.FastTable Size: 10, add (new): 26.66 ns, add (recycled): 21.99 ns, iteration (iterator): 21.69 ns, get(int): 5.978 ns Size: 100, add (new): 24.97 ns, add (recycled): 17.93 ns, iteration (iterator): 14.34 ns, get(int): 5.049 ns Size: 1000, add (new): 23.54 ns, add (recycled): 17.05 ns, iteration (iterator): 13.53 ns, get(int): 4.918 ns Size: 10000, add (new): 24.04 ns, add (recycled): 17.77 ns, iteration (iterator): 17.04 ns, get(int): 7.954 ns class java.util.ArrayList Size: 10, add (new): 21.09 ns, add (recycled): 18.90 ns, iteration (iterator): 48.89 ns, get(int): 7.194 ns Size: 100, add (new): 26.98 ns, add (recycled): 17.01 ns, iteration (iterator): 44.37 ns, get(int): 6.322 ns Size: 1000, add (new): 21.14 ns, add (recycled): 16.76 ns, iteration (iterator): 43.51 ns, get(int): 6.227 ns Size: 10000, add (new): 22.10 ns, add (recycled): 17.34 ns, iteration (iterator): 44.02 ns, get(int): 6.441 ns -- FastList versus LinkedList -- class javolution.util.FastList Size: 10, add (new): 40.98 ns, add (recycled): 22.11 ns, iteration (iterator): 21.39 ns, iteration (node): 2.838 ns Size: 100, add (new): 31.69 ns, add (recycled): 20.06 ns, iteration (iterator): 13.22 ns, iteration (node): 1.622 ns Size: 1000, add (new): 35.40 ns, add (recycled): 25.85 ns, iteration (iterator): 14.22 ns, iteration (node): 4.207 ns Size: 10000, add (new): 37.88 ns, add (recycled): 26.40 ns, iteration (iterator): 14.17 ns, iteration (node): 4.331 ns class java.util.LinkedList Size: 10, add (new): 44.44 ns, add (recycled): 67.54 ns, iteration (iterator): 19.22 ns Size: 100, add (new): 43.23 ns, add (recycled): 64.79 ns, iteration (iterator): 13.44 ns Size: 1000, add (new): 47.22 ns, add (recycled): 74.66 ns, iteration (iterator): 14.74 ns Size: 10000, add (new): 54.31 ns, add (recycled): 68.88 ns, iteration (iterator): 14.68 ns -- FastMap versus HashMap -- class javolution.util.FastMap Size: 10, put (new): 116.3 ns, put (recycled): 93.48 ns, get: 22.60 ns, iteration (iterator): 31.52 ns, iteration (entry): 2.695 ns Size: 100, put (new): 131.5 ns, put (recycled): 87.58 ns, get: 23.29 ns, iteration (iterator): 23.92 ns, iteration (entry): 1.633 ns Size: 1000, put (new): 150.5 ns, put (recycled): 101.2 ns, get: 31.09 ns, iteration (iterator): 23.95 ns, iteration (entry): 5.832 ns Size: 10000, put (new): 200.1 ns, put (recycled): 109.0 ns, get: 42.56 ns, iteration (iterator): 24.07 ns, iteration (entry): 5.688 ns class java.util.HashMap Size: 10, put (new): 161.3 ns, put (recycled): 174.2 ns, get: 24.89 ns, iteration (iterator): 30.14 ns Size: 100, put (new): 213.4 ns, put (recycled): 170.4 ns, get: 25.73 ns, iteration (iterator): 37.11 ns Size: 1000, put (new): 211.0 ns, put (recycled): 168.2 ns, get: 31.10 ns, iteration (iterator): 37.66 ns Size: 10000, put (new): 207.8 ns, put (recycled): 167.8 ns, get: 37.64 ns, iteration (iterator): 37.80 ns class java.util.LinkedHashMap Size: 10, put (new): 196.0 ns, put (recycled): 209.7 ns, get: 33.47 ns, iteration (iterator): 24.27 ns Size: 100, put (new): 202.7 ns, put (recycled): 201.0 ns, get: 35.08 ns, iteration (iterator): 17.36 ns Size: 1000, put (new): 207.1 ns, put (recycled): 198.5 ns, get: 41.23 ns, iteration (iterator): 18.18 ns Size: 10000, put (new): 213.3 ns, put (recycled): 200.1 ns, get: 48.44 ns, iteration (iterator): 18.41 ns -- FastMap.setShared(true) versus ConcurrentHashMap -- Shared FastMap Size: 10, put (new): 126.5 ns, put (recycled): 52.31 ns, get: 22.58 ns, iteration (iterator): 31.18 ns, iteration (entry): 2.545 ns Size: 100, put (new): 150.0 ns, put (recycled): 52.54 ns, get: 29.46 ns, iteration (iterator): 24.06 ns, iteration (entry): 1.622 ns Size: 1000, put (new): 200.0 ns, put (recycled): 62.79 ns, get: 36.84 ns, iteration (iterator): 23.89 ns, iteration (entry): 5.595 ns Size: 10000, put (new): 281.8 ns, put (recycled): 70.30 ns, get: 47.66 ns, iteration (iterator): 24.12 ns, iteration (entry): 5.677 ns class java.util.concurrent.ConcurrentHashMap Size: 10, put (new): 533.8 ns, put (recycled): 497.5 ns, get: 29.97 ns, iteration (iterator): 50.55 ns Size: 100, put (new): 418.4 ns, put (recycled): 358.1 ns, get: 34.24 ns, iteration (iterator): 48.47 ns Size: 1000, put (new): 392.9 ns, put (recycled): 325.1 ns, get: 40.08 ns, iteration (iterator): 56.70 ns Size: 10000, put (new): 383.4 ns, put (recycled): 325.9 ns, get: 46.35 ns, iteration (iterator): 61.68 ns -- FastSet versus HashSet -- class javolution.util.FastSet Size: 10, add (new): 114.7 ns, add (recycled): 87.45 ns, contain: 22.96 ns, iteration (iterator): 33.50 ns, iteration (record): 7.954 ns Size: 100, add (new): 130.1 ns, add (recycled): 79.50 ns, contain: 23.55 ns, iteration (iterator): 24.81 ns, iteration (record): 6.260 ns Size: 1000, add (new): 150.5 ns, add (recycled): 98.70 ns, contain: 30.99 ns, iteration (iterator): 24.45 ns, iteration (record): 9.058 ns Size: 10000, add (new): 198.6 ns, add (recycled): 106.5 ns, contain: 43.36 ns, iteration (iterator): 24.36 ns, iteration (record): 9.137 ns class java.util.HashSet Size: 10, add (new): 171.3 ns, add (recycled): 169.1 ns, contain: 24.37 ns, iteration (iterator): 29.72 ns Size: 100, add (new): 207.0 ns, add (recycled): 163.1 ns, contain: 25.18 ns, iteration (iterator): 37.21 ns Size: 1000, add (new): 204.7 ns, add (recycled): 158.8 ns, contain: 30.86 ns, iteration (iterator): 38.41 ns Size: 10000, add (new): 203.1 ns, add (recycled): 161.0 ns, contain: 36.87 ns, iteration (iterator): 38.89 ns class java.util.LinkedHashSet Size: 10, add (new): 190.3 ns, add (recycled): 199.4 ns, contain: 25.65 ns, iteration (iterator): 25.29 ns Size: 100, add (new): 195.2 ns, add (recycled): 189.0 ns, contain: 25.08 ns, iteration (iterator): 17.55 ns Size: 1000, add (new): 201.5 ns, add (recycled): 189.0 ns, contain: 31.43 ns, iteration (iterator): 18.89 ns Size: 10000, add (new): 205.2 ns, add (recycled): 194.2 ns, contain: 37.92 ns, iteration (iterator): 18.88 ns ///////////////////////////// // Package: javolution.xml // ///////////////////////////// -- Java(TM) Serialization -- Write Time: 146.4 ms Read Time: 110.6 ms -- XML Serialization (I/O Stream) -- Write Time: 66.50 ms Read Time: 104.9 ms -- XML Serialization (NIO ByteBuffer) -- Write Time: 57.85 ms Read Time: 81.03 ms More performance analysis in future versions...