Pixysoft.framework.configuration 性能提升报告
测试结果:
。简单对象 序列化 5000次 性能提高6倍
。简单对象 反序列化 5000次 6.3times
。复杂接口序列化 5000次 9.5 times
。复杂接口反序列化 5000次 7.9 times
。复杂对象序列化 5000次 10.2 times
。复杂对象包含接口序列化与反序列化 2500次 7.3times
1. 简单对象 序列化 5000次
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
ms serialize
Time Elapsed: 886ms
CPU time: 390,625,000ns
Gen 0: 95
Gen 1: 0
Gen 2: 0
xml serialize
Time Elapsed: 1,046ms
CPU time: 875,000,000ns
Gen 0: 68
Gen 1: 0
Gen 2: 0
dynamic serialize
Time Elapsed: 156ms
CPU time: 156,250,000ns
Gen 0: 16
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 2.27 seconds (Ad hoc).
反射的性能最差,而动态提高了6倍性能。
2. 简单对象 反序列化 5000次
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
ms deserialize
Time Elapsed: 780ms
CPU time: 437,500,000ns
Gen 0: 97
Gen 1: 0
Gen 2: 0
xml deserialize
Time Elapsed: 951ms
CPU time: 890,625,000ns
Gen 0: 83
Gen 1: 0
Gen 2: 0
dynamic deserialize
Time Elapsed: 181ms
CPU time: 187,500,000ns
Gen 0: 42
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 2.16 seconds (Ad hoc).
ms deserialize
Time Elapsed: 780ms
CPU time: 437,500,000ns
Gen 0: 97
Gen 1: 0
Gen 2: 0
xml deserialize
Time Elapsed: 951ms
CPU time: 890,625,000ns
Gen 0: 83
Gen 1: 0
Gen 2: 0
dynamic deserialize
Time Elapsed: 181ms
CPU time: 187,500,000ns
Gen 0: 42
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 2.16 seconds (Ad hoc).
3.复杂接口序列化 5000次
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
reflection serialize
Time Elapsed: 12,249ms
CPU time: 11,093,750,000ns
Gen 0: 1480
Gen 1: 15
Gen 2: 0
dynamic serialize
Time Elapsed: 1,637ms
CPU time: 1,265,625,000ns
Gen 0: 178
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 14.09 seconds (Ad hoc).
reflection serialize
Time Elapsed: 12,249ms
CPU time: 11,093,750,000ns
Gen 0: 1480
Gen 1: 15
Gen 2: 0
dynamic serialize
Time Elapsed: 1,637ms
CPU time: 1,265,625,000ns
Gen 0: 178
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 14.09 seconds (Ad hoc).
4.复杂接口反序列化 5000次 7.9 times
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
xml reflection deserialize
Time Elapsed: 13,978ms
CPU time: 13,250,000,000ns
Gen 0: 1477
Gen 1: 73
Gen 2: 0
dynamic deserialize
Time Elapsed: 1,528ms
CPU time: 1,437,500,000ns
Gen 0: 282
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 15.80 seconds (Ad hoc).
xml reflection deserialize
Time Elapsed: 13,978ms
CPU time: 13,250,000,000ns
Gen 0: 1477
Gen 1: 73
Gen 2: 0
dynamic deserialize
Time Elapsed: 1,528ms
CPU time: 1,437,500,000ns
Gen 0: 282
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 15.80 seconds (Ad hoc).
5.复杂对象序列化 5000次 10.2 times
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
ms serialize
Time Elapsed: 836ms
CPU time: 515,625,000ns
Gen 0: 132
Gen 1: 0
Gen 2: 0
reflection serialize
Time Elapsed: 15,268ms
CPU time: 14,656,250,000ns
Gen 0: 1346
Gen 1: 1
Gen 2: 0
dynamic serialize
Time Elapsed: 1,954ms
CPU time: 1,843,750,000ns
Gen 0: 371
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 18.19 seconds (Ad hoc).
ms serialize
Time Elapsed: 836ms
CPU time: 515,625,000ns
Gen 0: 132
Gen 1: 0
Gen 2: 0
reflection serialize
Time Elapsed: 15,268ms
CPU time: 14,656,250,000ns
Gen 0: 1346
Gen 1: 1
Gen 2: 0
dynamic serialize
Time Elapsed: 1,954ms
CPU time: 1,843,750,000ns
Gen 0: 371
Gen 1: 0
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 18.19 seconds (Ad hoc).
6.复杂对象反序列化 5000次 6.140625倍
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
ms deserialize
Time Elapsed: 910ms
CPU time: 546,875,000ns
Gen 0: 152
Gen 1: 0
Gen 2: 0
xml deserialize
Time Elapsed: 15,428ms
CPU time: 14,937,500,000ns
Gen 0: 1242
Gen 1: 1
Gen 2: 0
dynamic deserialize
Time Elapsed: 2,278ms
CPU time: 2,234,375,000ns
Gen 0: 357
Gen 1: 1
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 18.89 seconds (Ad hoc).
ms deserialize
Time Elapsed: 910ms
CPU time: 546,875,000ns
Gen 0: 152
Gen 1: 0
Gen 2: 0
xml deserialize
Time Elapsed: 15,428ms
CPU time: 14,937,500,000ns
Gen 0: 1242
Gen 1: 1
Gen 2: 0
dynamic deserialize
Time Elapsed: 2,278ms
CPU time: 2,234,375,000ns
Gen 0: 357
Gen 1: 1
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 18.89 seconds (Ad hoc).
7. 复杂对象包含接口序列化与反序列化 2500次 7.3times
代码
------ Test started: Assembly: Pixysoft.TestDrivens.Configurations.exe ------
xml deserialize
Time Elapsed: 31,244ms
CPU time: 29,078,125,000ns
Gen 0: 2497
Gen 1: 19
Gen 2: 0
dynamic deserialize
Time Elapsed: 4,999ms
CPU time: 4,359,375,000ns
Gen 0: 658
Gen 1: 1
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 36.45 seconds (Ad hoc).
xml deserialize
Time Elapsed: 31,244ms
CPU time: 29,078,125,000ns
Gen 0: 2497
Gen 1: 19
Gen 2: 0
dynamic deserialize
Time Elapsed: 4,999ms
CPU time: 4,359,375,000ns
Gen 0: 658
Gen 1: 1
Gen 2: 0
1 passed, 0 failed, 0 skipped, took 36.45 seconds (Ad hoc).