| MM |
|
|
D2010 |
|
ScaleMM2 |
TCMalloc |
MSVCRT |
TopMM |
JeMalloc |
Hoard |
|
|
|
|
|
|
|
|
|
|
|
|
| Avg. Speed
(100% is fastest, others are slower) |
|
79% |
|
100% |
|
96,30% |
|
61% |
|
60,40% |
|
47,10% |
|
31,10% |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Tests, grouped
by type. Percentage is the duration versus baseline (D2010), so lower % is
faster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Test |
Type |
Ticks (D2010) |
D2010 % |
Ticks (ScaleMM2) |
SMM% |
Ticks (TCMalloc) |
TC% |
Ticks (MSVCRT) |
MS% |
Ticks (TopMM) |
Top% |
Ticks (JEmallocFF) |
JE% |
Ticks (HoardMM) |
Hoard% |
|
|
|
|
|
|
|
|
|
|
|
|
| Fragmentation Test |
SingleThreadRealloc |
1803 |
100 |
2008 |
111,4 |
1554 |
86,2 |
27230 |
1510,3 |
27243 |
1511,0 |
10904 |
604,8 |
27606 |
1531,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| ReallocMem benchmark |
SingleThreadRealloc |
3324 |
100 |
5066 |
152,4 |
4228 |
127,2 |
34549 |
1039,4 |
13054 |
392,7 |
8754 |
263,4 |
107814 |
3243,5 |
|
|
|
|
|
|
|
|
|
|
|
|
| Small upsize benchmark |
SingleThreadRealloc |
670 |
100 |
757 |
113,0 |
1467 |
219,0 |
2652 |
395,8 |
10733 |
1601,9 |
2046 |
305,4 |
3948 |
589,3 |
|
|
|
|
|
|
|
|
|
|
|
|
| Small downsize benchmark |
SingleThreadRealloc |
742 |
100 |
971 |
130,9 |
1805 |
243,3 |
4117 |
554,9 |
10752 |
1449,1 |
3187 |
429,5 |
6471 |
872,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| Array Upsize 1 thread |
SingleThreadRealloc |
13 |
100 |
14 |
107,7 |
23 |
176,9 |
180 |
1384,6 |
49 |
376,9 |
21 |
161,5 |
74634 |
574107,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Single-threaded
reallocate and use |
SingleThreadRealloc |
7327 |
100 |
7495 |
102,3 |
8024 |
109,5 |
10669 |
145,6 |
11776 |
160,7 |
9846 |
134,4 |
25981 |
354,6 |
|
|
|
|
|
|
|
|
|
|
|
|
| Block downsize |
SingleThreadRealloc |
6297 |
100 |
9043 |
143,6 |
10373 |
164,7 |
1601715 |
25436,2 |
3301587 |
52431,1 |
24291 |
385,8 |
571795 |
9080,4 |
|
|
|
|
|
|
|
|
|
|
|
|
| Single threaded
realloc (ticks, lower is better) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Note: Hoard is out of
range |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Test |
Type |
Ticks (D2010) |
D2010 % |
Ticks (ScaleMM2) |
SMM% |
Ticks (TCMalloc) |
TC% |
Ticks (MSVCRT) |
MS% |
Ticks (TopMM) |
Top% |
Ticks (JEmallocFF) |
JE% |
Ticks (HoardMM) |
Hoard% |
|
|
|
|
|
|
|
|
|
|
|
|
| Block size spread
benchmark |
SingleThreadAllocAndFree |
628 |
100 |
1059 |
168,6 |
1210 |
192,7 |
1935 |
308,1 |
8822 |
1404,8 |
1806 |
287,6 |
2505 |
398,9 |
|
|
|
|
|
|
|
|
|
|
|
|
| Raw Performance 1 thread |
SingleThreadAllocAndFree |
3361 |
100 |
1939 |
57,7 |
2347 |
69,8 |
5221 |
155,3 |
6930 |
206,2 |
6332 |
188,4 |
106362 |
3164,6 |
|
|
|
|
|
|
|
|
|
|
|
|
| Address space creep
benchmark |
SingleThreadAllocAndFree |
10622 |
100 |
13429 |
126,4 |
7906 |
74,4 |
21666 |
204,0 |
48876 |
460,1 |
14605 |
137,5 |
28050 |
264,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| Large block spread
benchmark |
SingleThreadAllocAndFree |
14727 |
100 |
14493 |
98,4 |
9320 |
63,3 |
12695 |
86,2 |
9764 |
66,3 |
12736 |
86,5 |
20481 |
139,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| Single-threaded allocate,
use and free |
SingleThreadAllocAndFree |
6832 |
100 |
7394 |
108,2 |
6296 |
92,2 |
8762 |
128,2 |
10286 |
150,6 |
8966 |
131,2 |
23004 |
336,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| MemFree1 |
SingleThreadAllocAndFree |
29762 |
100 |
29809 |
100,2 |
29727 |
99,9 |
29878 |
100,4 |
30127 |
101,2 |
29746 |
99,9 |
31018 |
104,2 |
|
|
|
|
|
|
|
|
|
|
|
|
| MemFree2 |
SingleThreadAllocAndFree |
294 |
100 |
295 |
100,3 |
295 |
100,3 |
294 |
100,0 |
295 |
100,3 |
295 |
100,3 |
293 |
99,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Single-threaded AllocMem |
SingleThreadAllocAndFree |
12949 |
100 |
12843 |
99,2 |
12729 |
98,3 |
12909 |
99,7 |
12817 |
99,0 |
13279 |
102,5 |
25343 |
195,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Address space creep
(larger blocks) |
SingleThreadAllocAndFree |
3102 |
100 |
5327 |
171,7 |
2539 |
81,9 |
7448 |
240,1 |
4776 |
154,0 |
22149 |
714,0 |
1534104 |
49455,3 |
|
|
|
|
|
|
|
|
|
|
|
|
| Single threaded
alloc+free (ticks, lower is better) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Note: Hoard is out of
range |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Test |
Type |
Ticks (D2010) |
D2010 % |
Ticks (ScaleMM2) |
SMM% |
Ticks (TCMalloc) |
TC% |
Ticks (MSVCRT) |
MS% |
Ticks (TopMM) |
Top% |
Ticks (JEmallocFF) |
JE% |
Ticks (HoardMM) |
Hoard% |
|
|
|
|
|
|
|
|
|
|
|
|
| Single Variables Access 6
arrays at a time |
MemoryAccessSpeed |
1536 |
100 |
1534 |
99,9 |
1759 |
114,5 |
1642 |
106,9 |
1665 |
108,4 |
1788 |
116,4 |
1757 |
114,4 |
|
|
|
|
|
|
|
|
|
|
|
|
| Double Variables Access 3
arrays at a time |
MemoryAccessSpeed |
3891 |
100 |
3944 |
101,4 |
3980 |
102,3 |
3943 |
101,3 |
3970 |
102,0 |
3919 |
100,7 |
9097 |
233,8 |
|
|
|
|
|
|
|
|
|
|
|
|
| Double Variables Access 6
arrays at a time |
MemoryAccessSpeed |
3759 |
100 |
3758 |
100,0 |
3953 |
105,2 |
3814 |
101,5 |
4072 |
108,3 |
3963 |
105,4 |
9326 |
248,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| Double Variables Access
18 arrays at a time |
MemoryAccessSpeed |
4039 |
100 |
4165 |
103,1 |
5555 |
137,5 |
4269 |
105,7 |
5831 |
144,4 |
5554 |
137,5 |
11419 |
282,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Move Benchmark1 2 arrays
at a time |
MemoryAccessSpeed |
2084 |
100 |
2067 |
99,2 |
2042 |
98,0 |
2078 |
99,7 |
2099 |
100,7 |
2108 |
101,2 |
2160 |
103,6 |
|
|
|
|
|
|
|
|
|
|
|
|
| Move Benchmark2 4 arrays
at a time |
MemoryAccessSpeed |
2132 |
100 |
2209 |
103,6 |
2144 |
100,6 |
2243 |
105,2 |
2138 |
100,3 |
2139 |
100,3 |
2282 |
107,0 |
|
|
|
|
|
|
|
|
|
|
|
|
| FillCharMultiThread |
MemoryAccessSpeed |
499 |
100 |
503 |
100,8 |
347 |
69,5 |
526 |
105,4 |
461 |
92,4 |
500 |
100,2 |
608 |
121,8 |
|
|
|
|
|
|
|
|
|
|
|
|
| SortIntegerArrayBenchmark |
MemoryAccessSpeed |
3239 |
100 |
3302 |
101,9 |
3189 |
98,5 |
3217 |
99,3 |
3265 |
100,8 |
3228 |
99,7 |
3215 |
99,3 |
|
|
|
|
|
|
|
|
|
|
|
|
| SortExtendedArrayBenchmark |
MemoryAccessSpeed |
1537 |
100 |
1635 |
106,4 |
1396 |
90,8 |
1322 |
86,0 |
1102 |
71,7 |
1544 |
100,5 |
1068 |
69,5 |
|
|
|
|
|
|
|
|
|
|
|
|
| Linked-list container
benchmark |
MemoryAccessSpeed |
884 |
100 |
1291 |
146,0 |
962 |
108,8 |
941 |
106,4 |
1095 |
123,9 |
922 |
104,3 |
1321 |
149,4 |
|
|
|
|
|
|
|
|
|
|
|
|
| QuickSortIntegerArrayBenchmark |
MemoryAccessSpeed |
7145 |
100 |
7085 |
99,2 |
7166 |
100,3 |
7111 |
99,5 |
7233 |
101,2 |
7147 |
100,0 |
7098 |
99,3 |
|
|
|
|
|
|
|
|
|
|
|
t |
| QuickSortExtendedArrayBenchmark |
MemoryAccessSpeed |
428 |
100 |
399 |
93,2 |
416 |
97,2 |
402 |
93,9 |
427 |
99,8 |
417 |
97,4 |
548 |
128,0 |
|
|
|
|
|
|
|
|
|
|
|
|
| Memory acces
speed (ticks, lower is better) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Test |
Type |
Ticks (D2010) |
D2010 % |
Ticks (ScaleMM2) |
SMM% |
Ticks (TCMalloc) |
TC% |
Ticks (MSVCRT) |
MS% |
Ticks (TopMM) |
Top% |
Ticks (JEmallocFF) |
JE% |
Ticks (HoardMM) |
Hoard% |
|
|
|
|
|
|
|
|
|
|
|
|
| Multi-threaded allocate,
use and free |
MultiThreadAllocAndFree |
7584 |
100 |
4308 |
56,8 |
4754 |
62,7 |
5324 |
70,2 |
5497 |
72,5 |
18842 |
248,4 |
36914 |
486,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Transient threaded
objects |
MultiThreadAllocAndFree |
3362 |
100 |
740 |
22,0 |
1372 |
40,8 |
3803 |
113,1 |
5804 |
172,6 |
44592 |
1326,4 |
19827 |
589,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| Raw Performance 8 threads |
MultiThreadAllocAndFree |
15139 |
100 |
1942 |
12,8 |
2587 |
17,1 |
7382 |
48,8 |
7131 |
47,1 |
54506 |
360,0 |
1015099 |
6705,2 |
|
|
|
|
|
|
|
|
|
|
|
|
| Multi threaded
alloc+free (ticks, lower is better) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Note: Hoard is
out of range (not even visible!) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Test |
Type |
Ticks (D2010) |
D2010 % |
Ticks (ScaleMM2) |
SMM% |
Ticks (TCMalloc) |
TC% |
Ticks (MSVCRT) |
MS% |
Ticks (TopMM) |
Top% |
Ticks (JEmallocFF) |
JE% |
Ticks (HoardMM) |
Hoard% |
|
|
|
|
|
|
|
|
|
|
|
|
| Multi-threaded reallocate
and use |
MultiThreadRealloc |
2980 |
100 |
2521 |
84,6 |
2769 |
92,9 |
3028 |
101,6 |
3206 |
107,6 |
7840 |
263,1 |
19779 |
663,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| NexusDB with 1 thread(s) |
MultiThreadRealloc |
9959 |
100 |
11695 |
117,4 |
15486 |
155,5 |
50571 |
507,8 |
43318 |
435,0 |
20537 |
206,2 |
60706 |
609,6 |
|
|
|
|
|
|
|
|
|
|
|
|
| NexusDB with 2 thread(s) |
MultiThreadRealloc |
9131 |
100 |
6053 |
66,3 |
7989 |
87,5 |
26081 |
285,6 |
22166 |
242,8 |
17002 |
186,2 |
76951 |
842,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| NexusDB with 4 thread(s) |
MultiThreadRealloc |
8665 |
100 |
3212 |
37,1 |
4217 |
48,7 |
14709 |
169,8 |
11627 |
134,2 |
24507 |
282,8 |
109620 |
1265,1 |
|
|
|
|
|
|
|
|
|
|
|
|
| NexusDB with 8 thread(s) |
MultiThreadRealloc |
7635 |
100 |
3306 |
43,3 |
4385 |
57,4 |
13985 |
183,2 |
12048 |
157,8 |
25283 |
331,1 |
91517 |
1198,7 |
|
|
|
|
|
|
|
|
|
|
|
|
| ManyShortLivedThreads |
MultiThreadRealloc |
2093 |
100 |
1881 |
89,9 |
751 |
35,9 |
2072 |
99,0 |
2285 |
109,2 |
4445 |
212,4 |
4667 |
223,0 |
|
|
|
|
|
|
|
|
|
|
|
|
| StringThreadTest |
MultiThreadRealloc |
10502 |
100 |
16503 |
157,1 |
4365 |
41,6 |
5936 |
56,5 |
4353 |
41,4 |
30601 |
291,4 |
9475 |
90,2 |
|
|
|
|
|
|
|
|
|
|
|
|
| Multi threaded
realloc (ticks, lower is better) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Note: Hoard is out of
range |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|