diff --git a/result.html b/result.html index 422ca08a..17fa228c 100644 --- a/result.html +++ b/result.html @@ -1,230 +1,38 @@ intel i7 3770K 3,4 ghz, 4 core, 8 threads
-1.7.0_51-b13,Java HotSpot(TM) 64-Bit Server VM,Windows 8
-

Test Class: FrequentPrimitives[]

-A class with a typical distribution of primitve fields: 2 short Strings, 3 boolean, 6 ints, 2 long, one double.
-
-Read Time (micros) - - - - - - - -
-███████████████▌ FST (preferSpeed=true, Unsafe enabled) (46)
-█████████████████▌ FST (Unsafe enabled) (52)
-███████████████████ Kryo 2.23 UnsafeIn/Output (57)
-█████████████████████ FST (63)
-█████████████████████▌ Kryo 2.23 (64)
-███████████████████████████████████ Java built in (105)

-Write Time (micros) - - - - - - - -
-█████████████▌ FST (preferSpeed=true, Unsafe enabled) (40)
-█████████████████ FST (Unsafe enabled) (51)
-████████████████▌ Kryo 2.23 UnsafeIn/Output (49)
-████████████████▌ FST (50)
-█████████████████████ Kryo 2.23 (63)
-█████████████████████████████████ Java built in (99)

-Size (byte) - - - - - - - -
-███████████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (21917)
-████████████████████████████▌ FST (Unsafe enabled) (14260)
-████████████████████████████████ Kryo 2.23 UnsafeIn/Output (16059)
-████████████████████████████▌ FST (14260)
-██████████████████████████▌ Kryo 2.23 (13259)
-███████████████████████████████████ Java built in (17683)

-

Test Class: FrequentPrimitivesExternalizable[]

-A class with a typical distribution of primitve fields: 2 short Strings, 3 boolean, 6 ints, 2 long, one double. But implementing Externalizable
-
-Read Time (micros) - - - - - - - -
-████████████████▌ FST (preferSpeed=true, Unsafe enabled) (50)
-████████████████ FST (Unsafe enabled) (48)
-█████████████████████▌ Kryo 2.23 UnsafeIn/Output (65)
-███████████████▌ FST (47)
-██████████████████████ Kryo 2.23 (66)
-██████████████████████████▌ Java built in (79)

-Write Time (micros) - - - - - - - -
-████████████████ FST (preferSpeed=true, Unsafe enabled) (48)
-███████████████▌ FST (Unsafe enabled) (47)
-█████████████████▌ Kryo 2.23 UnsafeIn/Output (53)
-███████████████▌ FST (47)
-████████████████████▌ Kryo 2.23 (61)
-███████████████████ Java built in (57)

-Size (byte) - - - - - - - -
-████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (16365)
-████████████████████████████████▌ FST (Unsafe enabled) (16274)
-████████████████████████████████ Kryo 2.23 UnsafeIn/Output (16073)
-████████████████████████████████▌ FST (16274)
-██████████████████████████▌ Kryo 2.23 (13273)
-███████████████████████████████████▌ Java built in (17795)

-

Test Class: FrequentCollections

-Measures serialization of most popular collection classes. (HashMap and an ArrayList filled with Integer and Long).
-
-Read Time (micros) - - - - - - - -
-██████▌ FST (preferSpeed=true, Unsafe enabled) (20)
-██████▌ FST (Unsafe enabled) (19)
-█████████████████ Kryo 2.23 UnsafeIn/Output (51)
-██████▌ FST (20)
-███████████████████ Kryo 2.23 (57)
-████████████████████████████████████████████████████████████▌ Java built in (181)

-Write Time (micros) - - - - - - - -
-████▌ FST (preferSpeed=true, Unsafe enabled) (14)
-█████ FST (Unsafe enabled) (15)
-██████ Kryo 2.23 UnsafeIn/Output (18)
-█████ FST (15)
-████████▌ Kryo 2.23 (26)
-█████████████████████████████████████████████████████████████████▌ Java built in (197)

-Size (byte) - - - - - - - -
-█████████ FST (preferSpeed=true, Unsafe enabled) (4671)
-█████████ FST (Unsafe enabled) (4671)
-████████▌ Kryo 2.23 UnsafeIn/Output (4443)
-█████████ FST (4671)
-█████████ Kryo 2.23 (4615)
-████████████████▌ Java built in (8435)

-

Test Class: LargeNativeArrays

-measures performance serializing a large int array, a large long array and a large double array filled with random values. Note that random values destroy any value compression, so the increased size of kryo in this test will not be observable in most real world data.
-
-Read Time (micros) - - - - - - - -
-███▌ FST (preferSpeed=true, Unsafe enabled) (10)
-███▌ FST (Unsafe enabled) (10)
-███████████████████████████████████████ Kryo 2.23 UnsafeIn/Output (117)
-███████████ FST (33)
-██████████████████████████████████████████████████████ Kryo 2.23 (162)
-███████████▌ Java built in (34)

-Write Time (micros) - - - - - - - -
-██▌ FST (preferSpeed=true, Unsafe enabled) (7)
-██▌ FST (Unsafe enabled) (7)
-█ Kryo 2.23 UnsafeIn/Output (3)
-█████████ FST (27)
-████████████████ Kryo 2.23 (48)
-████████▌ Java built in (26)

-Size (byte) - - - - - - - -
-██████████████████████████████████████████████████████████████ FST (preferSpeed=true, Unsafe enabled) (31224)
-██████████████████████████████████████████████████████████████ FST (Unsafe enabled) (31219)
-██████████████████████████████████████████████████████████████ Kryo 2.23 UnsafeIn/Output (31210)
-██████████████████████████████████████████████████████████████ FST (31219)
-█████████████████████████████████████████████████████████████████████▌ Kryo 2.23 (34949)
-██████████████████████████████████████████████████████████████▌ Java built in (31403)

+1.7.0_45-b18,Java HotSpot(TM) 64-Bit Server VM,Windows 8

Test Class: StringPerformance

measures serialization of mid size to very long Strings

Read Time (micros) +████▌ FST (preferSpeed=true, Unsafe enabled) (13) +████████▌ FST (Unsafe enabled) (26) +████████████████████████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (157) +█████████▌ FST (28) +████████████████████████████████████████████████████▌ Kryo 2.23 (157) +██████████████████████▌ Java built in (68)
-███▌ FST (preferSpeed=true, Unsafe enabled) (11)
-████████▌ FST (Unsafe enabled) (25)
-██████████████████████████████████████████████████ Kryo 2.23 UnsafeIn/Output (150)
-███████████ FST (33)
-████████████████████████████████████████████████▌ Kryo 2.23 (146)
-█████████████████████ Java built in (63)

Write Time (micros) +█▌ FST (preferSpeed=true, Unsafe enabled) (4) +██████████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (116) +██████ FST (18) +██████████████████████████████████████ Kryo 2.23 (114) +███████████████████████████▌ Java built in (83)
-█▌ FST (preferSpeed=true, Unsafe enabled) (5)
██████▌ FST (Unsafe enabled) (20)
-██████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (103)
-██████▌ FST (20)
-█████████████████████████████████ Kryo 2.23 (99)
-█████████████████████████▌ Java built in (77)

Size (byte) @@ -241,382 +49,4 @@
██████████████████████████████ Java built in (17931)

-

Test Class: Primitives[]

-A broad test of primitive values and specials such as Enums, EnumSets, Date, String, byte, short, int, .. Byte, Character; Short, Integer, ..
plus opaque private field with same name in a private subclass
-
-Read Time (micros) - - - - - - - -
-██████████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (127)
-███████████████████████████████████████████▌ FST (Unsafe enabled) (130)
FAILURE Kryo 2.23 UnsafeIn/Output
-███████████████████████████████████████████████▌ FST (142)
FAILURE Kryo 2.23
FAILURE Java built in

-Write Time (micros) - - - - - - - -
-█████████████████████████████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (184)
-██████████████████████████████████████████████████████████████▌ FST (Unsafe enabled) (188)
FAILURE Kryo 2.23 UnsafeIn/Output
-██████████████████████████████████████████████████████████████████▌ FST (200)
FAILURE Kryo 2.23
FAILURE Java built in

-Size (byte) - - - - - - - -
-█████████████████████████████████████████████ FST (preferSpeed=true, Unsafe enabled) (22600)
-█████████████████████████████████ FST (Unsafe enabled) (16602)
-████████████████████████ Kryo 2.23 UnsafeIn/Output (12181)
-█████████████████████████████████ FST (16602)
-████████████████████ Kryo 2.23 (10171)
-█████████████████████████████████████████████████████ Java built in (26662)

-

Test Class: PrimitiveArrays[]

-Tests various arrays of int, Dimension, Date, Object. Nested arrays, multidimensional arrays.
-
-Read Time (micros) - - - - - - - -
-███████████████████▌ FST (preferSpeed=true, Unsafe enabled) (58)
-███████████████████ FST (Unsafe enabled) (57)
-███████████████████ Kryo 2.23 UnsafeIn/Output (57)
-████████████████████████▌ FST (73)
-████████████████████████▌ Kryo 2.23 (73)
-████████████████████████████████████████████████████████▌ Java built in (170)

-Write Time (micros) - - - - - - - -
-███████████████ FST (preferSpeed=true, Unsafe enabled) (45)
-███████████████ FST (Unsafe enabled) (45)
-██████████████▌ Kryo 2.23 UnsafeIn/Output (43)
-█████████████████ FST (51)
-██████████████████████ Kryo 2.23 (66)
-█████████████████████████████▌ Java built in (89)

-Size (byte) - - - - - - - -
-███████████████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (23894)
-█████████████████████████████████████████████ FST (Unsafe enabled) (22743)
-█████████████████████████████████ Kryo 2.23 UnsafeIn/Output (16518)
-█████████████████████████████████████████████ FST (22743)
-███████████████████ Kryo 2.23 (9728)
-█████████████████████████████████████████▌ Java built in (20846)

-

Test Class: CommonCollections

-In depth test of collections incl. collections of collections.
(ArrayList, ArrayDeque, ConcurrentLinkedQueue, Vector, TreeSet, LinkedList, TreeMap, ConcurrentHashMap, Hashtable, HashMap). Note: has been modified to workaround Kryo-specific Issue.
-
-Read Time (micros) - - - - - - - -
-███████████████████▌ FST (preferSpeed=true, Unsafe enabled) (58)
-███████████████████ FST (Unsafe enabled) (57)
-████████████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (121)
-████████████████████████ FST (72)
-██████████████████████████████████████▌ Kryo 2.23 (116)
-███████████████████████████████████████████████████████████████████████████████████████▌ Java built in (262)

-Write Time (micros) - - - - - - - -
-██████████████ FST (preferSpeed=true, Unsafe enabled) (42)
-██████████████▌ FST (Unsafe enabled) (43)
-█████████████████▌ Kryo 2.23 UnsafeIn/Output (53)
-███████████████▌ FST (47)
-█████████████████████ Kryo 2.23 (63)
-████████████████████████████████████████████████████████████▌ Java built in (181)

-Size (byte) - - - - - - - -
-███████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (15839)
-█████████████████ FST (Unsafe enabled) (8502)
-██████████████████▌ Kryo 2.23 UnsafeIn/Output (9408)
-█████████████████ FST (8502)
-████████████████▌ Kryo 2.23 (8323)
-██████████████████████████ Java built in (13172)

-

Test Class: Trader

-Measures serialization of a typical 'Enterprise-Object' using Value-Classes instead of primitive tpyes.
-
-Read Time (micros) - - - - - - - -
-████████████████▌ FST (preferSpeed=true, Unsafe enabled) (50)
-██████████████████ FST (Unsafe enabled) (54)
-█████████████████████████▌ Kryo 2.23 UnsafeIn/Output (77)
-██████████████████ FST (54)
-███████████████████████████▌ Kryo 2.23 (83)
-███████████████████████████████████████████████████████████████████████████▌ Java built in (226)

-Write Time (micros) - - - - - - - -
-█████████████████▌ FST (preferSpeed=true, Unsafe enabled) (53)
-█████████████████ FST (Unsafe enabled) (51)
-██████████████████████▌ Kryo 2.23 UnsafeIn/Output (67)
-█████████████████▌ FST (53)
-████████████████████████▌ Kryo 2.23 (73)
-███████████████████████████████████████████████████████████████ Java built in (189)

-Size (byte) - - - - - - - -
-████████████▌ FST (preferSpeed=true, Unsafe enabled) (6380)
-██████████ FST (Unsafe enabled) (5129)
-███████████▌ Kryo 2.23 UnsafeIn/Output (5928)
-██████████ FST (5129)
-███████████▌ Kryo 2.23 (5919)
-██████████████████████ Java built in (11075)

-

Test Class: ManyClasses[]

-Tests speed serializing a complex object graph of many different classes with few primitive fields.
-
-Read Time (micros) - - - - - - - -
-█████████████ FST (preferSpeed=true, Unsafe enabled) (39)
-██████████████▌ FST (Unsafe enabled) (43)
-█████████████████▌ Kryo 2.23 UnsafeIn/Output (52)
-██████████████▌ FST (43)
-█████████████████▌ Kryo 2.23 (53)
-██████████████████████████████████████████████████████████████████████████████▌ Java built in (235)

-Write Time (micros) - - - - - - - -
-███████████▌ FST (preferSpeed=true, Unsafe enabled) (34)
-███████████▌ FST (Unsafe enabled) (35)
-██████████████▌ Kryo 2.23 UnsafeIn/Output (43)
-█████████████▌ FST (40)
-███████████████▌ Kryo 2.23 (47)
-██████████████████████████████████████████████ Java built in (138)

-Size (byte) - - - - - - - -
-█████████████ FST (preferSpeed=true, Unsafe enabled) (6525)
-███████▌ FST (Unsafe enabled) (3996)
-█████████ Kryo 2.23 UnsafeIn/Output (4560)
-███████▌ FST (3996)
-████████ Kryo 2.23 (4152)
-████████████████ Java built in (8117)

-

Test Class: ExternalizableTest

-Performance of Externalizable objects.
-
-Read Time (micros) - - - - - - - -
-█████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (76)
-██████████████████████████▌ FST (Unsafe enabled) (80)
-████████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (110)
-████████████████████████▌ FST (73)
-██████████████████████████████ Kryo 2.23 (90)
-███████████████████████████████████████████████████████████▌ Java built in (179)

-Write Time (micros) - - - - - - - -
-██████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (116)
-██████████████████████████████████████▌ FST (Unsafe enabled) (115)
-███████████████████████████▌ Kryo 2.23 UnsafeIn/Output (82)
-████████████████████████████████▌ FST (97)
-██████████████████████████ Kryo 2.23 (78)
-███████████████████████████████████████████████████████ Java built in (165)

-Size (byte) - - - - - - - -
-████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (10335)
-████████████████████ FST (Unsafe enabled) (10137)
-███████████████ Kryo 2.23 UnsafeIn/Output (7507)
-████████████████████ FST (10137)
-█████████ Kryo 2.23 (4733)
-█████████████████████████████▌ Java built in (14840)

-

Test Class: BigObject

-A bigger object graph consisting of some of the test objects at once
-
-Read Time (micros) - - - - - - - -
-████████████ FST (preferSpeed=true, Unsafe enabled) (36)
-████████████ FST (Unsafe enabled) (36)
-█████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (88)
-█████████████▌ FST (41)
-██████████████████████████████▌ Kryo 2.23 (92)
-██████████████████████████████▌ Java built in (91)

-Write Time (micros) - - - - - - - -
-████████████▌ FST (preferSpeed=true, Unsafe enabled) (37)
-████████████▌ FST (Unsafe enabled) (37)
-█████████████████▌ Kryo 2.23 UnsafeIn/Output (53)
-█████████████▌ FST (41)
-████████████████████▌ Kryo 2.23 (62)
-██████████████████████████████████████ Java built in (114)

-Size (byte) - - - - - - - -
-███████████████████████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (632808)
-██████████████████████████████████ FST (Unsafe enabled) (498227)
-██████████████████████████████████████████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (1028285)
-██████████████████████████████████ FST (498227)
-██████████████████████████████████████████████████████████████████ Kryo 2.23 (956770)
-████████████████████████████████████████████████ Java built in (699317)

-

Test Class: HeavyNesting

-Heavily nested Objects
-
-Read Time (micros) - - - - - - - -
-███████████████████████████▌ FST (preferSpeed=true, Unsafe enabled) (82)
-██████████████████████████▌ FST (Unsafe enabled) (80)
-██████████████████████████████ Kryo 2.23 UnsafeIn/Output (90)
-█████████████████████████████ FST (87)
-███████████████████████████████▌ Kryo 2.23 (94)
-█████████████████████████████████████████████████████▌ Java built in (161)

-Write Time (micros) - - - - - - - -
-█████████████████████ FST (preferSpeed=true, Unsafe enabled) (63)
-██████████████████████ FST (Unsafe enabled) (66)
-██████████████████████████████████▌ Kryo 2.23 UnsafeIn/Output (104)
-████████████████████████▌ FST (73)
-██████████████████████████████████████▌ Kryo 2.23 (116)
-███████████████████████████████████████████████████████████████▌ Java built in (191)

-Size (byte) - - - - - - - -
-██████████ FST (preferSpeed=true, Unsafe enabled) (5006)
-███████ FST (Unsafe enabled) (3747)
-██████████████ Kryo 2.23 UnsafeIn/Output (7076)
-███████ FST (3747)
-██████████ Kryo 2.23 (5009)
-████████████████████ Java built in (10182)

diff --git a/result.txt b/result.txt index aeb72743..456e5deb 100644 --- a/result.txt +++ b/result.txt @@ -1,137 +1,5 @@ intel i7 3770K 3,4 ghz, 4 core, 8 threads -1.7.0_51-b13,Java HotSpot(TM) 64-Bit Server VM,Windows 8 - -================================ -Test Class: FrequentPrimitives[] -================================ -A class with a typical distribution of primitve fields: 2 short Strings, 3 boolean, 6 ints, 2 long, one double. - -Read Time (micros) - -=============== - FST (preferSpeed=true, Unsafe enabled) (46) -================= - FST (Unsafe enabled) (52) -=================== - Kryo 2.23 UnsafeIn/Output (57) -===================== - FST (63) -===================== - Kryo 2.23 (64) -=================================== - Java built in (105) - -Write Time (micros) - -============= - FST (preferSpeed=true, Unsafe enabled) (40) -================= - FST (Unsafe enabled) (51) -================ - Kryo 2.23 UnsafeIn/Output (49) -================ - FST (50) -===================== - Kryo 2.23 (63) -================================= - Java built in (99) - -Size (byte) - -=========================================== - FST (preferSpeed=true, Unsafe enabled) (21917) -============================ - FST (Unsafe enabled) (14260) -================================ - Kryo 2.23 UnsafeIn/Output (16059) -============================ - FST (14260) -========================== - Kryo 2.23 (13259) -=================================== - Java built in (17683) - - -============================================== -Test Class: FrequentPrimitivesExternalizable[] -============================================== -A class with a typical distribution of primitve fields: 2 short Strings, 3 boolean, 6 ints, 2 long, one double. But implementing Externalizable - -Read Time (micros) - -================ - FST (preferSpeed=true, Unsafe enabled) (50) -================ - FST (Unsafe enabled) (48) -===================== - Kryo 2.23 UnsafeIn/Output (65) -=============== - FST (47) -====================== - Kryo 2.23 (66) -========================== - Java built in (79) - -Write Time (micros) - -================ - FST (preferSpeed=true, Unsafe enabled) (48) -=============== - FST (Unsafe enabled) (47) -================= - Kryo 2.23 UnsafeIn/Output (53) -=============== - FST (47) -==================== - Kryo 2.23 (61) -=================== - Java built in (57) - -Size (byte) - -================================ - FST (preferSpeed=true, Unsafe enabled) (16365) -================================ - FST (Unsafe enabled) (16274) -================================ - Kryo 2.23 UnsafeIn/Output (16073) -================================ - FST (16274) -========================== - Kryo 2.23 (13273) -=================================== - Java built in (17795) - - -=============================== -Test Class: FrequentCollections -=============================== -Measures serialization of most popular collection classes. (HashMap and an ArrayList filled with Integer and Long). - -Read Time (micros) - -====== - FST (preferSpeed=true, Unsafe enabled) (20) -====== - FST (Unsafe enabled) (19) -================= - Kryo 2.23 UnsafeIn/Output (51) -====== - FST (20) -=================== - Kryo 2.23 (57) -============================================================ - Java built in (181) - -Write Time (micros) - -==== - FST (preferSpeed=true, Unsafe enabled) (14) -===== - FST (Unsafe enabled) (15) -====== - Kryo 2.23 UnsafeIn/Output (18) -===== - FST (15) -======== - Kryo 2.23 (26) -================================================================= - Java built in (197) - -Size (byte) - -========= - FST (preferSpeed=true, Unsafe enabled) (4671) -========= - FST (Unsafe enabled) (4671) -======== - Kryo 2.23 UnsafeIn/Output (4443) -========= - FST (4671) -========= - Kryo 2.23 (4615) -================ - Java built in (8435) - - -============================= -Test Class: LargeNativeArrays -============================= -measures performance serializing a large int array, a large long array and a large double array filled with random values. Note that random values destroy any value compression, so the increased size of kryo in this test will not be observable in most real world data. - -Read Time (micros) - -=== - FST (preferSpeed=true, Unsafe enabled) (10) -=== - FST (Unsafe enabled) (10) -======================================= - Kryo 2.23 UnsafeIn/Output (117) -=========== - FST (33) -====================================================== - Kryo 2.23 (162) -=========== - Java built in (34) - -Write Time (micros) - -== - FST (preferSpeed=true, Unsafe enabled) (7) -== - FST (Unsafe enabled) (7) -= - Kryo 2.23 UnsafeIn/Output (3) -========= - FST (27) -================ - Kryo 2.23 (48) -======== - Java built in (26) - -Size (byte) - -============================================================== - FST (preferSpeed=true, Unsafe enabled) (31224) -============================================================== - FST (Unsafe enabled) (31219) -============================================================== - Kryo 2.23 UnsafeIn/Output (31210) -============================================================== - FST (31219) -===================================================================== - Kryo 2.23 (34949) -============================================================== - Java built in (31403) - +1.7.0_45-b18,Java HotSpot(TM) 64-Bit Server VM,Windows 8 ============================= Test Class: StringPerformance @@ -140,21 +8,21 @@ measures serialization of mid size to very long Strings Read Time (micros) -=== - FST (preferSpeed=true, Unsafe enabled) (11) -======== - FST (Unsafe enabled) (25) -================================================== - Kryo 2.23 UnsafeIn/Output (150) -=========== - FST (33) -================================================ - Kryo 2.23 (146) -===================== - Java built in (63) +==== - FST (preferSpeed=true, Unsafe enabled) (13) +======== - FST (Unsafe enabled) (26) +==================================================== - Kryo 2.23 UnsafeIn/Output (157) +========= - FST (28) +==================================================== - Kryo 2.23 (157) +====================== - Java built in (68) Write Time (micros) -= - FST (preferSpeed=true, Unsafe enabled) (5) += - FST (preferSpeed=true, Unsafe enabled) (4) ====== - FST (Unsafe enabled) (20) -================================== - Kryo 2.23 UnsafeIn/Output (103) -====== - FST (20) -================================= - Kryo 2.23 (99) -========================= - Java built in (77) +====================================== - Kryo 2.23 UnsafeIn/Output (116) +====== - FST (18) +====================================== - Kryo 2.23 (114) +=========================== - Java built in (83) Size (byte) @@ -165,263 +33,3 @@ Size (byte) ====================================================================== - Kryo 2.23 (42043) ============================== - Java built in (17931) - -======================== -Test Class: Primitives[] -======================== -A broad test of primitive values and specials such as Enums, EnumSets, Date, String, byte, short, int, .. Byte, Character; Short, Integer, .. - plus opaque private field with same name in a private subclass - -Read Time (micros) - -========================================== - FST (preferSpeed=true, Unsafe enabled) (127) -=========================================== - FST (Unsafe enabled) (130) -=============================================== - FST (142) - -Write Time (micros) - -============================================================= - FST (preferSpeed=true, Unsafe enabled) (184) -============================================================== - FST (Unsafe enabled) (188) -================================================================== - FST (200) - -Size (byte) - -============================================= - FST (preferSpeed=true, Unsafe enabled) (22600) -================================= - FST (Unsafe enabled) (16602) -======================== - Kryo 2.23 UnsafeIn/Output (12181) -================================= - FST (16602) -==================== - Kryo 2.23 (10171) -===================================================== - Java built in (26662) - - -============================= -Test Class: PrimitiveArrays[] -============================= -Tests various arrays of int, Dimension, Date, Object. Nested arrays, multidimensional arrays. - -Read Time (micros) - -=================== - FST (preferSpeed=true, Unsafe enabled) (58) -=================== - FST (Unsafe enabled) (57) -=================== - Kryo 2.23 UnsafeIn/Output (57) -======================== - FST (73) -======================== - Kryo 2.23 (73) -======================================================== - Java built in (170) - -Write Time (micros) - -=============== - FST (preferSpeed=true, Unsafe enabled) (45) -=============== - FST (Unsafe enabled) (45) -============== - Kryo 2.23 UnsafeIn/Output (43) -================= - FST (51) -====================== - Kryo 2.23 (66) -============================= - Java built in (89) - -Size (byte) - -=============================================== - FST (preferSpeed=true, Unsafe enabled) (23894) -============================================= - FST (Unsafe enabled) (22743) -================================= - Kryo 2.23 UnsafeIn/Output (16518) -============================================= - FST (22743) -=================== - Kryo 2.23 (9728) -========================================= - Java built in (20846) - - -============================= -Test Class: CommonCollections -============================= -In depth test of collections incl. collections of collections. - (ArrayList, ArrayDeque, ConcurrentLinkedQueue, Vector, TreeSet, LinkedList, TreeMap, ConcurrentHashMap, Hashtable, HashMap). Note: has been modified to workaround Kryo-specific Issue. - -Read Time (micros) - -=================== - FST (preferSpeed=true, Unsafe enabled) (58) -=================== - FST (Unsafe enabled) (57) -======================================== - Kryo 2.23 UnsafeIn/Output (121) -======================== - FST (72) -====================================== - Kryo 2.23 (116) -======================================================================================= - Java built in (262) - -Write Time (micros) - -============== - FST (preferSpeed=true, Unsafe enabled) (42) -============== - FST (Unsafe enabled) (43) -================= - Kryo 2.23 UnsafeIn/Output (53) -=============== - FST (47) -===================== - Kryo 2.23 (63) -============================================================ - Java built in (181) - -Size (byte) - -=============================== - FST (preferSpeed=true, Unsafe enabled) (15839) -================= - FST (Unsafe enabled) (8502) -================== - Kryo 2.23 UnsafeIn/Output (9408) -================= - FST (8502) -================ - Kryo 2.23 (8323) -========================== - Java built in (13172) - - -================== -Test Class: Trader -================== -Measures serialization of a typical 'Enterprise-Object' using Value-Classes instead of primitive tpyes. - -Read Time (micros) - -================ - FST (preferSpeed=true, Unsafe enabled) (50) -================== - FST (Unsafe enabled) (54) -========================= - Kryo 2.23 UnsafeIn/Output (77) -================== - FST (54) -=========================== - Kryo 2.23 (83) -=========================================================================== - Java built in (226) - -Write Time (micros) - -================= - FST (preferSpeed=true, Unsafe enabled) (53) -================= - FST (Unsafe enabled) (51) -====================== - Kryo 2.23 UnsafeIn/Output (67) -================= - FST (53) -======================== - Kryo 2.23 (73) -=============================================================== - Java built in (189) - -Size (byte) - -============ - FST (preferSpeed=true, Unsafe enabled) (6380) -========== - FST (Unsafe enabled) (5129) -=========== - Kryo 2.23 UnsafeIn/Output (5928) -========== - FST (5129) -=========== - Kryo 2.23 (5919) -====================== - Java built in (11075) - - -========================= -Test Class: ManyClasses[] -========================= -Tests speed serializing a complex object graph of many different classes with few primitive fields. - -Read Time (micros) - -============= - FST (preferSpeed=true, Unsafe enabled) (39) -============== - FST (Unsafe enabled) (43) -================= - Kryo 2.23 UnsafeIn/Output (52) -============== - FST (43) -================= - Kryo 2.23 (53) -============================================================================== - Java built in (235) - -Write Time (micros) - -=========== - FST (preferSpeed=true, Unsafe enabled) (34) -=========== - FST (Unsafe enabled) (35) -============== - Kryo 2.23 UnsafeIn/Output (43) -============= - FST (40) -=============== - Kryo 2.23 (47) -============================================== - Java built in (138) - -Size (byte) - -============= - FST (preferSpeed=true, Unsafe enabled) (6525) -======= - FST (Unsafe enabled) (3996) -========= - Kryo 2.23 UnsafeIn/Output (4560) -======= - FST (3996) -======== - Kryo 2.23 (4152) -================ - Java built in (8117) - - -============================== -Test Class: ExternalizableTest -============================== -Performance of Externalizable objects. - -Read Time (micros) - -========================= - FST (preferSpeed=true, Unsafe enabled) (76) -========================== - FST (Unsafe enabled) (80) -==================================== - Kryo 2.23 UnsafeIn/Output (110) -======================== - FST (73) -============================== - Kryo 2.23 (90) -=========================================================== - Java built in (179) - -Write Time (micros) - -====================================== - FST (preferSpeed=true, Unsafe enabled) (116) -====================================== - FST (Unsafe enabled) (115) -=========================== - Kryo 2.23 UnsafeIn/Output (82) -================================ - FST (97) -========================== - Kryo 2.23 (78) -======================================================= - Java built in (165) - -Size (byte) - -==================== - FST (preferSpeed=true, Unsafe enabled) (10335) -==================== - FST (Unsafe enabled) (10137) -=============== - Kryo 2.23 UnsafeIn/Output (7507) -==================== - FST (10137) -========= - Kryo 2.23 (4733) -============================= - Java built in (14840) - - -===================== -Test Class: BigObject -===================== -A bigger object graph consisting of some of the test objects at once - -Read Time (micros) - -============ - FST (preferSpeed=true, Unsafe enabled) (36) -============ - FST (Unsafe enabled) (36) -============================= - Kryo 2.23 UnsafeIn/Output (88) -============= - FST (41) -============================== - Kryo 2.23 (92) -============================== - Java built in (91) - -Write Time (micros) - -============ - FST (preferSpeed=true, Unsafe enabled) (37) -============ - FST (Unsafe enabled) (37) -================= - Kryo 2.23 UnsafeIn/Output (53) -============= - FST (41) -==================== - Kryo 2.23 (62) -====================================== - Java built in (114) - -Size (byte) - -=========================================== - FST (preferSpeed=true, Unsafe enabled) (632808) -================================== - FST (Unsafe enabled) (498227) -====================================================================== - Kryo 2.23 UnsafeIn/Output (1028285) -================================== - FST (498227) -================================================================== - Kryo 2.23 (956770) -================================================ - Java built in (699317) - - -======================== -Test Class: HeavyNesting -======================== -Heavily nested Objects - -Read Time (micros) - -=========================== - FST (preferSpeed=true, Unsafe enabled) (82) -========================== - FST (Unsafe enabled) (80) -============================== - Kryo 2.23 UnsafeIn/Output (90) -============================= - FST (87) -=============================== - Kryo 2.23 (94) -===================================================== - Java built in (161) - -Write Time (micros) - -===================== - FST (preferSpeed=true, Unsafe enabled) (63) -====================== - FST (Unsafe enabled) (66) -================================== - Kryo 2.23 UnsafeIn/Output (104) -======================== - FST (73) -====================================== - Kryo 2.23 (116) -=============================================================== - Java built in (191) - -Size (byte) - -========== - FST (preferSpeed=true, Unsafe enabled) (5006) -======= - FST (Unsafe enabled) (3747) -============== - Kryo 2.23 UnsafeIn/Output (7076) -======= - FST (3747) -========== - Kryo 2.23 (5009) -==================== - Java built in (10182) - diff --git a/src/main/java/de/ruedigermoeller/serialization/FSTObjectInputNoShared.java b/src/main/java/de/ruedigermoeller/serialization/FSTObjectInputNoShared.java index e6b3e2bc..b7ae3173 100644 --- a/src/main/java/de/ruedigermoeller/serialization/FSTObjectInputNoShared.java +++ b/src/main/java/de/ruedigermoeller/serialization/FSTObjectInputNoShared.java @@ -33,6 +33,7 @@ public FSTObjectInputNoShared() throws IOException { public FSTObjectInputNoShared(FSTConfiguration conf) { super(conf); + conf.setShareReferences(false); } /** diff --git a/src/test/java/de/ruedigermoeller/serialization/testclasses/TestRunner.java b/src/test/java/de/ruedigermoeller/serialization/testclasses/TestRunner.java index 2861f7a4..dbf6b42b 100644 --- a/src/test/java/de/ruedigermoeller/serialization/testclasses/TestRunner.java +++ b/src/test/java/de/ruedigermoeller/serialization/testclasses/TestRunner.java @@ -164,19 +164,19 @@ public static void main( String[] arg ) throws Exception { SerTest.WarmUP = 20000; SerTest.Run = SerTest.WarmUP*1+1; // SerTest.WarmUP = 2000; SerTest.Run = 3000; - runner.runAll(FrequentPrimitives.getArray(200)); - runner.runAll(FrequentPrimitivesExternalizable.getArray(200)); - runner.runAll(new FrequentCollections()); - runner.runAll(new LargeNativeArrays()); - runner.runAll(new StringPerformance()); - runner.runAll(new Primitives(0).createPrimArray()); - runner.runAll(new PrimitiveArrays().createPrimArray()); - runner.runAll(new CommonCollections()); - runner.runAll(Trader.generateTrader(101, true)); - runner.runAll(ManyClasses.getArray() ); - runner.runAll(new ExternalizableTest()); - runner.runAll(new BigObject()); - runner.runAll(HeavyNesting.createNestedObject(1000)); +// runner.runAll(FrequentPrimitives.getArray(200)); +// runner.runAll(FrequentPrimitivesExternalizable.getArray(200)); +// runner.runAll(new FrequentCollections()); +// runner.runAll(new LargeNativeArrays()); + runner.runAll(new StringPerformance(0)); +// runner.runAll(new Primitives(0).createPrimArray()); +// runner.runAll(new PrimitiveArrays().createPrimArray()); +// runner.runAll(new CommonCollections()); +// runner.runAll(Trader.generateTrader(101, true)); +// runner.runAll(ManyClasses.getArray() ); +// runner.runAll(new ExternalizableTest()); +// runner.runAll(new BigObject("dummy")); +// runner.runAll(HeavyNesting.createNestedObject(1000)); runner.charter.closeDoc(); FSTTestApp.main(new String[0]); } diff --git a/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/BigObject.java b/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/BigObject.java index ec1ce901..4cb52e79 100644 --- a/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/BigObject.java +++ b/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/BigObject.java @@ -31,7 +31,7 @@ */ public class BigObject implements Serializable, HasDescription { // runner.runAll(FrequentPrimitives.getArray(200)); -// runner.runAll(new StringPerformance()); +// runner.runAll(new StringPerformance(0)); // runner.runAll(new FrequentCollections()); // runner.runAll(new LargeNativeArrays()); // runner.runAll("new Primitives(0).createPrimArray() jva ser bug"); @@ -41,12 +41,19 @@ public class BigObject implements Serializable, HasDescription { // runner.runAll(ManyClasses.getArray() ); // runner.runAll(new ExternalizableTest()); - Object[] aLot = { + Object[] aLot; + + public BigObject() { + } + + // move init to constructor to avoid skewing results + public BigObject(String dummy) { + aLot = new Object[] { FrequentPrimitives.getArray(10), "A", "B", "C", - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -55,7 +62,7 @@ public class BigObject implements Serializable, HasDescription { new ManyClasses(123), new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), null, new FrequentCollections(), new CommonCollections(), @@ -69,7 +76,7 @@ public class BigObject implements Serializable, HasDescription { new ExternalizableTest(), FrequentPrimitives.getArray(10), null, - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -78,7 +85,7 @@ public class BigObject implements Serializable, HasDescription { new ManyClasses(123), new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), null, new FrequentCollections(), new CommonCollections(), @@ -92,7 +99,7 @@ public class BigObject implements Serializable, HasDescription { new ExternalizableTest(), null, FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -105,7 +112,7 @@ public class BigObject implements Serializable, HasDescription { "C", FrequentPrimitives.getArray(10), null, - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -115,7 +122,7 @@ public class BigObject implements Serializable, HasDescription { new ManyClasses(123), new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -124,7 +131,7 @@ public class BigObject implements Serializable, HasDescription { new ManyClasses(123), new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), null, new FrequentCollections(), new CommonCollections(), @@ -135,7 +142,7 @@ public class BigObject implements Serializable, HasDescription { null, new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -146,7 +153,7 @@ public class BigObject implements Serializable, HasDescription { new ExternalizableTest(), null, FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -160,7 +167,7 @@ public class BigObject implements Serializable, HasDescription { new ExternalizableTest(), null, FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -172,7 +179,7 @@ public class BigObject implements Serializable, HasDescription { null, FrequentPrimitives.getArray(10), null, null, - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -190,7 +197,7 @@ public class BigObject implements Serializable, HasDescription { new ExternalizableTest(), FrequentPrimitives.getArray(10), null, - new StringPerformance(), + new StringPerformance(0), new FrequentCollections(), new CommonCollections(), "new Primitives(0).createPrimArray() jva ser bug", @@ -200,7 +207,7 @@ public class BigObject implements Serializable, HasDescription { new ManyClasses(123), new ExternalizableTest(), FrequentPrimitives.getArray(10), - new StringPerformance(), + new StringPerformance(0), "AA", "BA", "CA", @@ -212,9 +219,8 @@ public class BigObject implements Serializable, HasDescription { Trader.generateTrader(13, true), new ManyClasses(123), new ExternalizableTest(), - }; + }; - { for (int i = 0; i < aLot.length; i++) { Object o = aLot[i]; if ( o == null ) diff --git a/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/StringPerformance.java b/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/StringPerformance.java index 94c5fd3a..f1e99ec0 100644 --- a/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/StringPerformance.java +++ b/src/test/java/de/ruedigermoeller/serialization/testclasses/basicstuff/StringPerformance.java @@ -27,7 +27,15 @@ * To change this template use File | Settings | File Templates. */ public class StringPerformance implements Serializable, HasDescription { - String str[] = + + public StringPerformance() { + } + + String str[]; + + //avoid instance initalizing - actually had no effect on test results .. + public StringPerformance(int dummy) { + str = new String[] { " License along with this library; if not, write to the Free Software\n" + " * Foundation, Inc., 51 Fradddddnklin Street, Fifth Floor, Boston,\n" + @@ -243,6 +251,7 @@ public class StringPerformance implements Serializable, HasDescription { "\"All druid rituals have an element of fertility, and the solstice is no exception,\" says King Arthur Pendragon, a senior archdruid. \"We celebrate the union of the male and female deities -- the sun and the Earth -- on the longest day of the year.\"" }; + } @Override public String getDescription() {