tlsf is ok, and fast
This commit is contained in:
@@ -1,619 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 1 op, 146700.00 ns, 146.7000 us/op
|
|
||||||
WorkloadJitting 1: 1 op, 4370500.00 ns, 4.3705 ms/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 1 op, 1700.00 ns, 1.7000 us/op
|
|
||||||
OverheadWarmup 2: 1 op, 400.00 ns, 400.0000 ns/op
|
|
||||||
OverheadWarmup 3: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 4: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 5: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 6: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 7: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 1 op, 1000.00 ns, 1.0000 us/op
|
|
||||||
OverheadActual 2: 1 op, 700.00 ns, 700.0000 ns/op
|
|
||||||
OverheadActual 3: 1 op, 600.00 ns, 600.0000 ns/op
|
|
||||||
OverheadActual 4: 1 op, 500.00 ns, 500.0000 ns/op
|
|
||||||
OverheadActual 5: 1 op, 700.00 ns, 700.0000 ns/op
|
|
||||||
OverheadActual 6: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 7: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 8: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 9: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 10: 1 op, 600.00 ns, 600.0000 ns/op
|
|
||||||
OverheadActual 11: 1 op, 400.00 ns, 400.0000 ns/op
|
|
||||||
OverheadActual 12: 1 op, 1000.00 ns, 1.0000 us/op
|
|
||||||
OverheadActual 13: 1 op, 400.00 ns, 400.0000 ns/op
|
|
||||||
OverheadActual 14: 1 op, 400.00 ns, 400.0000 ns/op
|
|
||||||
OverheadActual 15: 1 op, 100.00 ns, 100.0000 ns/op
|
|
||||||
OverheadActual 16: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 17: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 18: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 19: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 20: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 1 op, 1448000.00 ns, 1.4480 ms/op
|
|
||||||
WorkloadWarmup 2: 1 op, 2492300.00 ns, 2.4923 ms/op
|
|
||||||
WorkloadWarmup 3: 1 op, 1562900.00 ns, 1.5629 ms/op
|
|
||||||
WorkloadWarmup 4: 1 op, 3228700.00 ns, 3.2287 ms/op
|
|
||||||
WorkloadWarmup 5: 1 op, 1172800.00 ns, 1.1728 ms/op
|
|
||||||
WorkloadWarmup 6: 1 op, 1389000.00 ns, 1.3890 ms/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 1 op, 1158000.00 ns, 1.1580 ms/op
|
|
||||||
WorkloadActual 2: 1 op, 1258200.00 ns, 1.2582 ms/op
|
|
||||||
WorkloadActual 3: 1 op, 1196800.00 ns, 1.1968 ms/op
|
|
||||||
WorkloadActual 4: 1 op, 1082700.00 ns, 1.0827 ms/op
|
|
||||||
WorkloadActual 5: 1 op, 1265800.00 ns, 1.2658 ms/op
|
|
||||||
WorkloadActual 6: 1 op, 1078700.00 ns, 1.0787 ms/op
|
|
||||||
WorkloadActual 7: 1 op, 1111300.00 ns, 1.1113 ms/op
|
|
||||||
WorkloadActual 8: 1 op, 1115800.00 ns, 1.1158 ms/op
|
|
||||||
WorkloadActual 9: 1 op, 1312200.00 ns, 1.3122 ms/op
|
|
||||||
WorkloadActual 10: 1 op, 1253800.00 ns, 1.2538 ms/op
|
|
||||||
WorkloadActual 11: 1 op, 1068100.00 ns, 1.0681 ms/op
|
|
||||||
WorkloadActual 12: 1 op, 1045600.00 ns, 1.0456 ms/op
|
|
||||||
WorkloadActual 13: 1 op, 1063000.00 ns, 1.0630 ms/op
|
|
||||||
WorkloadActual 14: 1 op, 1122500.00 ns, 1.1225 ms/op
|
|
||||||
WorkloadActual 15: 1 op, 1105200.00 ns, 1.1052 ms/op
|
|
||||||
WorkloadActual 16: 1 op, 1348000.00 ns, 1.3480 ms/op
|
|
||||||
WorkloadActual 17: 1 op, 1316300.00 ns, 1.3163 ms/op
|
|
||||||
WorkloadActual 18: 1 op, 1261800.00 ns, 1.2618 ms/op
|
|
||||||
WorkloadActual 19: 1 op, 1036000.00 ns, 1.0360 ms/op
|
|
||||||
WorkloadActual 20: 1 op, 1035300.00 ns, 1.0353 ms/op
|
|
||||||
WorkloadActual 21: 1 op, 1107800.00 ns, 1.1078 ms/op
|
|
||||||
WorkloadActual 22: 1 op, 1037600.00 ns, 1.0376 ms/op
|
|
||||||
WorkloadActual 23: 1 op, 1031600.00 ns, 1.0316 ms/op
|
|
||||||
WorkloadActual 24: 1 op, 1091700.00 ns, 1.0917 ms/op
|
|
||||||
WorkloadActual 25: 1 op, 1069700.00 ns, 1.0697 ms/op
|
|
||||||
WorkloadActual 26: 1 op, 1057800.00 ns, 1.0578 ms/op
|
|
||||||
WorkloadActual 27: 1 op, 1297600.00 ns, 1.2976 ms/op
|
|
||||||
WorkloadActual 28: 1 op, 1082500.00 ns, 1.0825 ms/op
|
|
||||||
WorkloadActual 29: 1 op, 1053400.00 ns, 1.0534 ms/op
|
|
||||||
WorkloadActual 30: 1 op, 1033500.00 ns, 1.0335 ms/op
|
|
||||||
WorkloadActual 31: 1 op, 1034100.00 ns, 1.0341 ms/op
|
|
||||||
WorkloadActual 32: 1 op, 1047200.00 ns, 1.0472 ms/op
|
|
||||||
WorkloadActual 33: 1 op, 1040200.00 ns, 1.0402 ms/op
|
|
||||||
WorkloadActual 34: 1 op, 1042800.00 ns, 1.0428 ms/op
|
|
||||||
WorkloadActual 35: 1 op, 1123400.00 ns, 1.1234 ms/op
|
|
||||||
WorkloadActual 36: 1 op, 1077300.00 ns, 1.0773 ms/op
|
|
||||||
WorkloadActual 37: 1 op, 1240900.00 ns, 1.2409 ms/op
|
|
||||||
WorkloadActual 38: 1 op, 1049500.00 ns, 1.0495 ms/op
|
|
||||||
WorkloadActual 39: 1 op, 1073100.00 ns, 1.0731 ms/op
|
|
||||||
WorkloadActual 40: 1 op, 1065400.00 ns, 1.0654 ms/op
|
|
||||||
WorkloadActual 41: 1 op, 1030200.00 ns, 1.0302 ms/op
|
|
||||||
WorkloadActual 42: 1 op, 1310500.00 ns, 1.3105 ms/op
|
|
||||||
WorkloadActual 43: 1 op, 1005700.00 ns, 1.0057 ms/op
|
|
||||||
WorkloadActual 44: 1 op, 998200.00 ns, 998.2000 us/op
|
|
||||||
WorkloadActual 45: 1 op, 1422400.00 ns, 1.4224 ms/op
|
|
||||||
WorkloadActual 46: 1 op, 1019800.00 ns, 1.0198 ms/op
|
|
||||||
WorkloadActual 47: 1 op, 1001500.00 ns, 1.0015 ms/op
|
|
||||||
WorkloadActual 48: 1 op, 1305100.00 ns, 1.3051 ms/op
|
|
||||||
WorkloadActual 49: 1 op, 1006200.00 ns, 1.0062 ms/op
|
|
||||||
WorkloadActual 50: 1 op, 1065500.00 ns, 1.0655 ms/op
|
|
||||||
WorkloadActual 51: 1 op, 1397500.00 ns, 1.3975 ms/op
|
|
||||||
WorkloadActual 52: 1 op, 1036200.00 ns, 1.0362 ms/op
|
|
||||||
WorkloadActual 53: 1 op, 1062000.00 ns, 1.0620 ms/op
|
|
||||||
WorkloadActual 54: 1 op, 1052900.00 ns, 1.0529 ms/op
|
|
||||||
WorkloadActual 55: 1 op, 1055100.00 ns, 1.0551 ms/op
|
|
||||||
WorkloadActual 56: 1 op, 1099000.00 ns, 1.0990 ms/op
|
|
||||||
WorkloadActual 57: 1 op, 1120100.00 ns, 1.1201 ms/op
|
|
||||||
WorkloadActual 58: 1 op, 1351500.00 ns, 1.3515 ms/op
|
|
||||||
WorkloadActual 59: 1 op, 1149600.00 ns, 1.1496 ms/op
|
|
||||||
WorkloadActual 60: 1 op, 1371500.00 ns, 1.3715 ms/op
|
|
||||||
WorkloadActual 61: 1 op, 1200600.00 ns, 1.2006 ms/op
|
|
||||||
WorkloadActual 62: 1 op, 1192200.00 ns, 1.1922 ms/op
|
|
||||||
WorkloadActual 63: 1 op, 1336200.00 ns, 1.3362 ms/op
|
|
||||||
WorkloadActual 64: 1 op, 1213200.00 ns, 1.2132 ms/op
|
|
||||||
WorkloadActual 65: 1 op, 1192000.00 ns, 1.1920 ms/op
|
|
||||||
WorkloadActual 66: 1 op, 1505200.00 ns, 1.5052 ms/op
|
|
||||||
WorkloadActual 67: 1 op, 1489200.00 ns, 1.4892 ms/op
|
|
||||||
WorkloadActual 68: 1 op, 1078700.00 ns, 1.0787 ms/op
|
|
||||||
WorkloadActual 69: 1 op, 1194100.00 ns, 1.1941 ms/op
|
|
||||||
WorkloadActual 70: 1 op, 1129900.00 ns, 1.1299 ms/op
|
|
||||||
WorkloadActual 71: 1 op, 1109100.00 ns, 1.1091 ms/op
|
|
||||||
WorkloadActual 72: 1 op, 1195000.00 ns, 1.1950 ms/op
|
|
||||||
WorkloadActual 73: 1 op, 1128300.00 ns, 1.1283 ms/op
|
|
||||||
WorkloadActual 74: 1 op, 1605000.00 ns, 1.6050 ms/op
|
|
||||||
WorkloadActual 75: 1 op, 1353200.00 ns, 1.3532 ms/op
|
|
||||||
WorkloadActual 76: 1 op, 1200600.00 ns, 1.2006 ms/op
|
|
||||||
WorkloadActual 77: 1 op, 1204100.00 ns, 1.2041 ms/op
|
|
||||||
WorkloadActual 78: 1 op, 1465200.00 ns, 1.4652 ms/op
|
|
||||||
WorkloadActual 79: 1 op, 1142000.00 ns, 1.1420 ms/op
|
|
||||||
WorkloadActual 80: 1 op, 1181000.00 ns, 1.1810 ms/op
|
|
||||||
WorkloadActual 81: 1 op, 1173400.00 ns, 1.1734 ms/op
|
|
||||||
WorkloadActual 82: 1 op, 1155200.00 ns, 1.1552 ms/op
|
|
||||||
WorkloadActual 83: 1 op, 1239700.00 ns, 1.2397 ms/op
|
|
||||||
WorkloadActual 84: 1 op, 1269600.00 ns, 1.2696 ms/op
|
|
||||||
WorkloadActual 85: 1 op, 1243600.00 ns, 1.2436 ms/op
|
|
||||||
WorkloadActual 86: 1 op, 1218900.00 ns, 1.2189 ms/op
|
|
||||||
WorkloadActual 87: 1 op, 1292200.00 ns, 1.2922 ms/op
|
|
||||||
WorkloadActual 88: 1 op, 1233100.00 ns, 1.2331 ms/op
|
|
||||||
WorkloadActual 89: 1 op, 1468800.00 ns, 1.4688 ms/op
|
|
||||||
WorkloadActual 90: 1 op, 1163000.00 ns, 1.1630 ms/op
|
|
||||||
WorkloadActual 91: 1 op, 1145500.00 ns, 1.1455 ms/op
|
|
||||||
WorkloadActual 92: 1 op, 1229300.00 ns, 1.2293 ms/op
|
|
||||||
WorkloadActual 93: 1 op, 1090200.00 ns, 1.0902 ms/op
|
|
||||||
WorkloadActual 94: 1 op, 1057400.00 ns, 1.0574 ms/op
|
|
||||||
WorkloadActual 95: 1 op, 1100300.00 ns, 1.1003 ms/op
|
|
||||||
WorkloadActual 96: 1 op, 1069300.00 ns, 1.0693 ms/op
|
|
||||||
WorkloadActual 97: 1 op, 1084500.00 ns, 1.0845 ms/op
|
|
||||||
WorkloadActual 98: 1 op, 1068200.00 ns, 1.0682 ms/op
|
|
||||||
WorkloadActual 99: 1 op, 1044300.00 ns, 1.0443 ms/op
|
|
||||||
WorkloadActual 100: 1 op, 1482600.00 ns, 1.4826 ms/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 1 op, 1157650.00 ns, 1.1577 ms/op
|
|
||||||
WorkloadResult 2: 1 op, 1257850.00 ns, 1.2579 ms/op
|
|
||||||
WorkloadResult 3: 1 op, 1196450.00 ns, 1.1965 ms/op
|
|
||||||
WorkloadResult 4: 1 op, 1082350.00 ns, 1.0824 ms/op
|
|
||||||
WorkloadResult 5: 1 op, 1265450.00 ns, 1.2655 ms/op
|
|
||||||
WorkloadResult 6: 1 op, 1078350.00 ns, 1.0784 ms/op
|
|
||||||
WorkloadResult 7: 1 op, 1110950.00 ns, 1.1110 ms/op
|
|
||||||
WorkloadResult 8: 1 op, 1115450.00 ns, 1.1155 ms/op
|
|
||||||
WorkloadResult 9: 1 op, 1311850.00 ns, 1.3119 ms/op
|
|
||||||
WorkloadResult 10: 1 op, 1253450.00 ns, 1.2535 ms/op
|
|
||||||
WorkloadResult 11: 1 op, 1067750.00 ns, 1.0678 ms/op
|
|
||||||
WorkloadResult 12: 1 op, 1045250.00 ns, 1.0453 ms/op
|
|
||||||
WorkloadResult 13: 1 op, 1062650.00 ns, 1.0627 ms/op
|
|
||||||
WorkloadResult 14: 1 op, 1122150.00 ns, 1.1222 ms/op
|
|
||||||
WorkloadResult 15: 1 op, 1104850.00 ns, 1.1049 ms/op
|
|
||||||
WorkloadResult 16: 1 op, 1347650.00 ns, 1.3477 ms/op
|
|
||||||
WorkloadResult 17: 1 op, 1315950.00 ns, 1.3160 ms/op
|
|
||||||
WorkloadResult 18: 1 op, 1261450.00 ns, 1.2615 ms/op
|
|
||||||
WorkloadResult 19: 1 op, 1035650.00 ns, 1.0357 ms/op
|
|
||||||
WorkloadResult 20: 1 op, 1034950.00 ns, 1.0350 ms/op
|
|
||||||
WorkloadResult 21: 1 op, 1107450.00 ns, 1.1075 ms/op
|
|
||||||
WorkloadResult 22: 1 op, 1037250.00 ns, 1.0373 ms/op
|
|
||||||
WorkloadResult 23: 1 op, 1031250.00 ns, 1.0313 ms/op
|
|
||||||
WorkloadResult 24: 1 op, 1091350.00 ns, 1.0914 ms/op
|
|
||||||
WorkloadResult 25: 1 op, 1069350.00 ns, 1.0694 ms/op
|
|
||||||
WorkloadResult 26: 1 op, 1057450.00 ns, 1.0575 ms/op
|
|
||||||
WorkloadResult 27: 1 op, 1297250.00 ns, 1.2973 ms/op
|
|
||||||
WorkloadResult 28: 1 op, 1082150.00 ns, 1.0822 ms/op
|
|
||||||
WorkloadResult 29: 1 op, 1053050.00 ns, 1.0531 ms/op
|
|
||||||
WorkloadResult 30: 1 op, 1033150.00 ns, 1.0332 ms/op
|
|
||||||
WorkloadResult 31: 1 op, 1033750.00 ns, 1.0338 ms/op
|
|
||||||
WorkloadResult 32: 1 op, 1046850.00 ns, 1.0469 ms/op
|
|
||||||
WorkloadResult 33: 1 op, 1039850.00 ns, 1.0399 ms/op
|
|
||||||
WorkloadResult 34: 1 op, 1042450.00 ns, 1.0425 ms/op
|
|
||||||
WorkloadResult 35: 1 op, 1123050.00 ns, 1.1231 ms/op
|
|
||||||
WorkloadResult 36: 1 op, 1076950.00 ns, 1.0770 ms/op
|
|
||||||
WorkloadResult 37: 1 op, 1240550.00 ns, 1.2406 ms/op
|
|
||||||
WorkloadResult 38: 1 op, 1049150.00 ns, 1.0492 ms/op
|
|
||||||
WorkloadResult 39: 1 op, 1072750.00 ns, 1.0728 ms/op
|
|
||||||
WorkloadResult 40: 1 op, 1065050.00 ns, 1.0651 ms/op
|
|
||||||
WorkloadResult 41: 1 op, 1029850.00 ns, 1.0299 ms/op
|
|
||||||
WorkloadResult 42: 1 op, 1310150.00 ns, 1.3102 ms/op
|
|
||||||
WorkloadResult 43: 1 op, 1005350.00 ns, 1.0054 ms/op
|
|
||||||
WorkloadResult 44: 1 op, 997850.00 ns, 997.8500 us/op
|
|
||||||
WorkloadResult 45: 1 op, 1422050.00 ns, 1.4221 ms/op
|
|
||||||
WorkloadResult 46: 1 op, 1019450.00 ns, 1.0195 ms/op
|
|
||||||
WorkloadResult 47: 1 op, 1001150.00 ns, 1.0012 ms/op
|
|
||||||
WorkloadResult 48: 1 op, 1304750.00 ns, 1.3048 ms/op
|
|
||||||
WorkloadResult 49: 1 op, 1005850.00 ns, 1.0059 ms/op
|
|
||||||
WorkloadResult 50: 1 op, 1065150.00 ns, 1.0652 ms/op
|
|
||||||
WorkloadResult 51: 1 op, 1397150.00 ns, 1.3972 ms/op
|
|
||||||
WorkloadResult 52: 1 op, 1035850.00 ns, 1.0359 ms/op
|
|
||||||
WorkloadResult 53: 1 op, 1061650.00 ns, 1.0617 ms/op
|
|
||||||
WorkloadResult 54: 1 op, 1052550.00 ns, 1.0526 ms/op
|
|
||||||
WorkloadResult 55: 1 op, 1054750.00 ns, 1.0548 ms/op
|
|
||||||
WorkloadResult 56: 1 op, 1098650.00 ns, 1.0987 ms/op
|
|
||||||
WorkloadResult 57: 1 op, 1119750.00 ns, 1.1198 ms/op
|
|
||||||
WorkloadResult 58: 1 op, 1351150.00 ns, 1.3512 ms/op
|
|
||||||
WorkloadResult 59: 1 op, 1149250.00 ns, 1.1493 ms/op
|
|
||||||
WorkloadResult 60: 1 op, 1371150.00 ns, 1.3712 ms/op
|
|
||||||
WorkloadResult 61: 1 op, 1200250.00 ns, 1.2003 ms/op
|
|
||||||
WorkloadResult 62: 1 op, 1191850.00 ns, 1.1919 ms/op
|
|
||||||
WorkloadResult 63: 1 op, 1335850.00 ns, 1.3359 ms/op
|
|
||||||
WorkloadResult 64: 1 op, 1212850.00 ns, 1.2129 ms/op
|
|
||||||
WorkloadResult 65: 1 op, 1191650.00 ns, 1.1917 ms/op
|
|
||||||
WorkloadResult 66: 1 op, 1504850.00 ns, 1.5049 ms/op
|
|
||||||
WorkloadResult 67: 1 op, 1488850.00 ns, 1.4889 ms/op
|
|
||||||
WorkloadResult 68: 1 op, 1078350.00 ns, 1.0784 ms/op
|
|
||||||
WorkloadResult 69: 1 op, 1193750.00 ns, 1.1938 ms/op
|
|
||||||
WorkloadResult 70: 1 op, 1129550.00 ns, 1.1296 ms/op
|
|
||||||
WorkloadResult 71: 1 op, 1108750.00 ns, 1.1088 ms/op
|
|
||||||
WorkloadResult 72: 1 op, 1194650.00 ns, 1.1947 ms/op
|
|
||||||
WorkloadResult 73: 1 op, 1127950.00 ns, 1.1280 ms/op
|
|
||||||
WorkloadResult 74: 1 op, 1352850.00 ns, 1.3529 ms/op
|
|
||||||
WorkloadResult 75: 1 op, 1200250.00 ns, 1.2003 ms/op
|
|
||||||
WorkloadResult 76: 1 op, 1203750.00 ns, 1.2038 ms/op
|
|
||||||
WorkloadResult 77: 1 op, 1464850.00 ns, 1.4649 ms/op
|
|
||||||
WorkloadResult 78: 1 op, 1141650.00 ns, 1.1417 ms/op
|
|
||||||
WorkloadResult 79: 1 op, 1180650.00 ns, 1.1807 ms/op
|
|
||||||
WorkloadResult 80: 1 op, 1173050.00 ns, 1.1731 ms/op
|
|
||||||
WorkloadResult 81: 1 op, 1154850.00 ns, 1.1549 ms/op
|
|
||||||
WorkloadResult 82: 1 op, 1239350.00 ns, 1.2394 ms/op
|
|
||||||
WorkloadResult 83: 1 op, 1269250.00 ns, 1.2693 ms/op
|
|
||||||
WorkloadResult 84: 1 op, 1243250.00 ns, 1.2433 ms/op
|
|
||||||
WorkloadResult 85: 1 op, 1218550.00 ns, 1.2186 ms/op
|
|
||||||
WorkloadResult 86: 1 op, 1291850.00 ns, 1.2919 ms/op
|
|
||||||
WorkloadResult 87: 1 op, 1232750.00 ns, 1.2328 ms/op
|
|
||||||
WorkloadResult 88: 1 op, 1468450.00 ns, 1.4685 ms/op
|
|
||||||
WorkloadResult 89: 1 op, 1162650.00 ns, 1.1627 ms/op
|
|
||||||
WorkloadResult 90: 1 op, 1145150.00 ns, 1.1452 ms/op
|
|
||||||
WorkloadResult 91: 1 op, 1228950.00 ns, 1.2290 ms/op
|
|
||||||
WorkloadResult 92: 1 op, 1089850.00 ns, 1.0899 ms/op
|
|
||||||
WorkloadResult 93: 1 op, 1057050.00 ns, 1.0571 ms/op
|
|
||||||
WorkloadResult 94: 1 op, 1099950.00 ns, 1.1000 ms/op
|
|
||||||
WorkloadResult 95: 1 op, 1068950.00 ns, 1.0690 ms/op
|
|
||||||
WorkloadResult 96: 1 op, 1084150.00 ns, 1.0842 ms/op
|
|
||||||
WorkloadResult 97: 1 op, 1067850.00 ns, 1.0679 ms/op
|
|
||||||
WorkloadResult 98: 1 op, 1043950.00 ns, 1.0440 ms/op
|
|
||||||
WorkloadResult 99: 1 op, 1482250.00 ns, 1.4823 ms/op
|
|
||||||
// GC: 0 0 0 0 1
|
|
||||||
// Threading: 0 0 1
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 1.162 ms, StdErr = 0.013 ms (1.10%), N = 99, StdDev = 0.127 ms
|
|
||||||
Min = 0.998 ms, Q1 = 1.062 ms, Median = 1.122 ms, Q3 = 1.240 ms, Max = 1.505 ms
|
|
||||||
IQR = 0.178 ms, LowerFence = 0.795 ms, UpperFence = 1.507 ms
|
|
||||||
ConfidenceInterval = [1.119 ms; 1.206 ms] (CI 99.9%), Margin = 0.043 ms (3.74% of Mean)
|
|
||||||
Skewness = 0.93, Kurtosis = 3.02, MValue = 2.21
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:05 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 1 op, 144200.00 ns, 144.2000 us/op
|
|
||||||
WorkloadJitting 1: 1 op, 1778900.00 ns, 1.7789 ms/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 1 op, 1200.00 ns, 1.2000 us/op
|
|
||||||
OverheadWarmup 2: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 3: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 4: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 5: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadWarmup 6: 1 op, 400.00 ns, 400.0000 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 2: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 3: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 4: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 5: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 6: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 7: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 8: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 9: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 10: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 11: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 12: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 13: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
OverheadActual 14: 1 op, 300.00 ns, 300.0000 ns/op
|
|
||||||
OverheadActual 15: 1 op, 200.00 ns, 200.0000 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 1 op, 1182000.00 ns, 1.1820 ms/op
|
|
||||||
WorkloadWarmup 2: 1 op, 913400.00 ns, 913.4000 us/op
|
|
||||||
WorkloadWarmup 3: 1 op, 953700.00 ns, 953.7000 us/op
|
|
||||||
WorkloadWarmup 4: 1 op, 2026800.00 ns, 2.0268 ms/op
|
|
||||||
WorkloadWarmup 5: 1 op, 1016000.00 ns, 1.0160 ms/op
|
|
||||||
WorkloadWarmup 6: 1 op, 947400.00 ns, 947.4000 us/op
|
|
||||||
WorkloadWarmup 7: 1 op, 1229200.00 ns, 1.2292 ms/op
|
|
||||||
WorkloadWarmup 8: 1 op, 1190800.00 ns, 1.1908 ms/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 1 op, 1023100.00 ns, 1.0231 ms/op
|
|
||||||
WorkloadActual 2: 1 op, 878400.00 ns, 878.4000 us/op
|
|
||||||
WorkloadActual 3: 1 op, 1030600.00 ns, 1.0306 ms/op
|
|
||||||
WorkloadActual 4: 1 op, 1079900.00 ns, 1.0799 ms/op
|
|
||||||
WorkloadActual 5: 1 op, 946800.00 ns, 946.8000 us/op
|
|
||||||
WorkloadActual 6: 1 op, 997800.00 ns, 997.8000 us/op
|
|
||||||
WorkloadActual 7: 1 op, 982200.00 ns, 982.2000 us/op
|
|
||||||
WorkloadActual 8: 1 op, 830400.00 ns, 830.4000 us/op
|
|
||||||
WorkloadActual 9: 1 op, 969200.00 ns, 969.2000 us/op
|
|
||||||
WorkloadActual 10: 1 op, 1111900.00 ns, 1.1119 ms/op
|
|
||||||
WorkloadActual 11: 1 op, 883500.00 ns, 883.5000 us/op
|
|
||||||
WorkloadActual 12: 1 op, 812800.00 ns, 812.8000 us/op
|
|
||||||
WorkloadActual 13: 1 op, 900300.00 ns, 900.3000 us/op
|
|
||||||
WorkloadActual 14: 1 op, 1015000.00 ns, 1.0150 ms/op
|
|
||||||
WorkloadActual 15: 1 op, 934600.00 ns, 934.6000 us/op
|
|
||||||
WorkloadActual 16: 1 op, 896100.00 ns, 896.1000 us/op
|
|
||||||
WorkloadActual 17: 1 op, 946900.00 ns, 946.9000 us/op
|
|
||||||
WorkloadActual 18: 1 op, 1134200.00 ns, 1.1342 ms/op
|
|
||||||
WorkloadActual 19: 1 op, 999700.00 ns, 999.7000 us/op
|
|
||||||
WorkloadActual 20: 1 op, 1113500.00 ns, 1.1135 ms/op
|
|
||||||
WorkloadActual 21: 1 op, 995200.00 ns, 995.2000 us/op
|
|
||||||
WorkloadActual 22: 1 op, 1099400.00 ns, 1.0994 ms/op
|
|
||||||
WorkloadActual 23: 1 op, 1284500.00 ns, 1.2845 ms/op
|
|
||||||
WorkloadActual 24: 1 op, 1214900.00 ns, 1.2149 ms/op
|
|
||||||
WorkloadActual 25: 1 op, 1055900.00 ns, 1.0559 ms/op
|
|
||||||
WorkloadActual 26: 1 op, 903800.00 ns, 903.8000 us/op
|
|
||||||
WorkloadActual 27: 1 op, 987200.00 ns, 987.2000 us/op
|
|
||||||
WorkloadActual 28: 1 op, 892000.00 ns, 892.0000 us/op
|
|
||||||
WorkloadActual 29: 1 op, 1104200.00 ns, 1.1042 ms/op
|
|
||||||
WorkloadActual 30: 1 op, 1000300.00 ns, 1.0003 ms/op
|
|
||||||
WorkloadActual 31: 1 op, 1021600.00 ns, 1.0216 ms/op
|
|
||||||
WorkloadActual 32: 1 op, 1068000.00 ns, 1.0680 ms/op
|
|
||||||
WorkloadActual 33: 1 op, 895400.00 ns, 895.4000 us/op
|
|
||||||
WorkloadActual 34: 1 op, 1091100.00 ns, 1.0911 ms/op
|
|
||||||
WorkloadActual 35: 1 op, 1025100.00 ns, 1.0251 ms/op
|
|
||||||
WorkloadActual 36: 1 op, 1023500.00 ns, 1.0235 ms/op
|
|
||||||
WorkloadActual 37: 1 op, 948400.00 ns, 948.4000 us/op
|
|
||||||
WorkloadActual 38: 1 op, 885400.00 ns, 885.4000 us/op
|
|
||||||
WorkloadActual 39: 1 op, 922100.00 ns, 922.1000 us/op
|
|
||||||
WorkloadActual 40: 1 op, 1066000.00 ns, 1.0660 ms/op
|
|
||||||
WorkloadActual 41: 1 op, 930500.00 ns, 930.5000 us/op
|
|
||||||
WorkloadActual 42: 1 op, 911100.00 ns, 911.1000 us/op
|
|
||||||
WorkloadActual 43: 1 op, 1044400.00 ns, 1.0444 ms/op
|
|
||||||
WorkloadActual 44: 1 op, 1133600.00 ns, 1.1336 ms/op
|
|
||||||
WorkloadActual 45: 1 op, 889800.00 ns, 889.8000 us/op
|
|
||||||
WorkloadActual 46: 1 op, 853300.00 ns, 853.3000 us/op
|
|
||||||
WorkloadActual 47: 1 op, 1062900.00 ns, 1.0629 ms/op
|
|
||||||
WorkloadActual 48: 1 op, 976700.00 ns, 976.7000 us/op
|
|
||||||
WorkloadActual 49: 1 op, 930900.00 ns, 930.9000 us/op
|
|
||||||
WorkloadActual 50: 1 op, 1024800.00 ns, 1.0248 ms/op
|
|
||||||
WorkloadActual 51: 1 op, 1027300.00 ns, 1.0273 ms/op
|
|
||||||
WorkloadActual 52: 1 op, 1011800.00 ns, 1.0118 ms/op
|
|
||||||
WorkloadActual 53: 1 op, 1026900.00 ns, 1.0269 ms/op
|
|
||||||
WorkloadActual 54: 1 op, 1112700.00 ns, 1.1127 ms/op
|
|
||||||
WorkloadActual 55: 1 op, 873800.00 ns, 873.8000 us/op
|
|
||||||
WorkloadActual 56: 1 op, 985200.00 ns, 985.2000 us/op
|
|
||||||
WorkloadActual 57: 1 op, 878300.00 ns, 878.3000 us/op
|
|
||||||
WorkloadActual 58: 1 op, 933000.00 ns, 933.0000 us/op
|
|
||||||
WorkloadActual 59: 1 op, 943600.00 ns, 943.6000 us/op
|
|
||||||
WorkloadActual 60: 1 op, 793700.00 ns, 793.7000 us/op
|
|
||||||
WorkloadActual 61: 1 op, 866000.00 ns, 866.0000 us/op
|
|
||||||
WorkloadActual 62: 1 op, 745400.00 ns, 745.4000 us/op
|
|
||||||
WorkloadActual 63: 1 op, 956900.00 ns, 956.9000 us/op
|
|
||||||
WorkloadActual 64: 1 op, 893800.00 ns, 893.8000 us/op
|
|
||||||
WorkloadActual 65: 1 op, 1005400.00 ns, 1.0054 ms/op
|
|
||||||
WorkloadActual 66: 1 op, 912200.00 ns, 912.2000 us/op
|
|
||||||
WorkloadActual 67: 1 op, 855500.00 ns, 855.5000 us/op
|
|
||||||
WorkloadActual 68: 1 op, 880400.00 ns, 880.4000 us/op
|
|
||||||
WorkloadActual 69: 1 op, 712200.00 ns, 712.2000 us/op
|
|
||||||
WorkloadActual 70: 1 op, 819500.00 ns, 819.5000 us/op
|
|
||||||
WorkloadActual 71: 1 op, 941200.00 ns, 941.2000 us/op
|
|
||||||
WorkloadActual 72: 1 op, 814300.00 ns, 814.3000 us/op
|
|
||||||
WorkloadActual 73: 1 op, 862100.00 ns, 862.1000 us/op
|
|
||||||
WorkloadActual 74: 1 op, 903500.00 ns, 903.5000 us/op
|
|
||||||
WorkloadActual 75: 1 op, 1078800.00 ns, 1.0788 ms/op
|
|
||||||
WorkloadActual 76: 1 op, 878700.00 ns, 878.7000 us/op
|
|
||||||
WorkloadActual 77: 1 op, 757500.00 ns, 757.5000 us/op
|
|
||||||
WorkloadActual 78: 1 op, 1035900.00 ns, 1.0359 ms/op
|
|
||||||
WorkloadActual 79: 1 op, 849200.00 ns, 849.2000 us/op
|
|
||||||
WorkloadActual 80: 1 op, 1035100.00 ns, 1.0351 ms/op
|
|
||||||
WorkloadActual 81: 1 op, 1927500.00 ns, 1.9275 ms/op
|
|
||||||
WorkloadActual 82: 1 op, 1169500.00 ns, 1.1695 ms/op
|
|
||||||
WorkloadActual 83: 1 op, 1035600.00 ns, 1.0356 ms/op
|
|
||||||
WorkloadActual 84: 1 op, 1048200.00 ns, 1.0482 ms/op
|
|
||||||
WorkloadActual 85: 1 op, 912800.00 ns, 912.8000 us/op
|
|
||||||
WorkloadActual 86: 1 op, 1019100.00 ns, 1.0191 ms/op
|
|
||||||
WorkloadActual 87: 1 op, 1272200.00 ns, 1.2722 ms/op
|
|
||||||
WorkloadActual 88: 1 op, 1464100.00 ns, 1.4641 ms/op
|
|
||||||
WorkloadActual 89: 1 op, 972900.00 ns, 972.9000 us/op
|
|
||||||
WorkloadActual 90: 1 op, 985300.00 ns, 985.3000 us/op
|
|
||||||
WorkloadActual 91: 1 op, 1008900.00 ns, 1.0089 ms/op
|
|
||||||
WorkloadActual 92: 1 op, 1372600.00 ns, 1.3726 ms/op
|
|
||||||
WorkloadActual 93: 1 op, 1458700.00 ns, 1.4587 ms/op
|
|
||||||
WorkloadActual 94: 1 op, 1110000.00 ns, 1.1100 ms/op
|
|
||||||
WorkloadActual 95: 1 op, 1108500.00 ns, 1.1085 ms/op
|
|
||||||
WorkloadActual 96: 1 op, 1041900.00 ns, 1.0419 ms/op
|
|
||||||
WorkloadActual 97: 1 op, 1357800.00 ns, 1.3578 ms/op
|
|
||||||
WorkloadActual 98: 1 op, 1021200.00 ns, 1.0212 ms/op
|
|
||||||
WorkloadActual 99: 1 op, 1095800.00 ns, 1.0958 ms/op
|
|
||||||
WorkloadActual 100: 1 op, 917100.00 ns, 917.1000 us/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 1 op, 1022900.00 ns, 1.0229 ms/op
|
|
||||||
WorkloadResult 2: 1 op, 878200.00 ns, 878.2000 us/op
|
|
||||||
WorkloadResult 3: 1 op, 1030400.00 ns, 1.0304 ms/op
|
|
||||||
WorkloadResult 4: 1 op, 1079700.00 ns, 1.0797 ms/op
|
|
||||||
WorkloadResult 5: 1 op, 946600.00 ns, 946.6000 us/op
|
|
||||||
WorkloadResult 6: 1 op, 997600.00 ns, 997.6000 us/op
|
|
||||||
WorkloadResult 7: 1 op, 982000.00 ns, 982.0000 us/op
|
|
||||||
WorkloadResult 8: 1 op, 830200.00 ns, 830.2000 us/op
|
|
||||||
WorkloadResult 9: 1 op, 969000.00 ns, 969.0000 us/op
|
|
||||||
WorkloadResult 10: 1 op, 1111700.00 ns, 1.1117 ms/op
|
|
||||||
WorkloadResult 11: 1 op, 883300.00 ns, 883.3000 us/op
|
|
||||||
WorkloadResult 12: 1 op, 812600.00 ns, 812.6000 us/op
|
|
||||||
WorkloadResult 13: 1 op, 900100.00 ns, 900.1000 us/op
|
|
||||||
WorkloadResult 14: 1 op, 1014800.00 ns, 1.0148 ms/op
|
|
||||||
WorkloadResult 15: 1 op, 934400.00 ns, 934.4000 us/op
|
|
||||||
WorkloadResult 16: 1 op, 895900.00 ns, 895.9000 us/op
|
|
||||||
WorkloadResult 17: 1 op, 946700.00 ns, 946.7000 us/op
|
|
||||||
WorkloadResult 18: 1 op, 1134000.00 ns, 1.1340 ms/op
|
|
||||||
WorkloadResult 19: 1 op, 999500.00 ns, 999.5000 us/op
|
|
||||||
WorkloadResult 20: 1 op, 1113300.00 ns, 1.1133 ms/op
|
|
||||||
WorkloadResult 21: 1 op, 995000.00 ns, 995.0000 us/op
|
|
||||||
WorkloadResult 22: 1 op, 1099200.00 ns, 1.0992 ms/op
|
|
||||||
WorkloadResult 23: 1 op, 1284300.00 ns, 1.2843 ms/op
|
|
||||||
WorkloadResult 24: 1 op, 1214700.00 ns, 1.2147 ms/op
|
|
||||||
WorkloadResult 25: 1 op, 1055700.00 ns, 1.0557 ms/op
|
|
||||||
WorkloadResult 26: 1 op, 903600.00 ns, 903.6000 us/op
|
|
||||||
WorkloadResult 27: 1 op, 987000.00 ns, 987.0000 us/op
|
|
||||||
WorkloadResult 28: 1 op, 891800.00 ns, 891.8000 us/op
|
|
||||||
WorkloadResult 29: 1 op, 1104000.00 ns, 1.1040 ms/op
|
|
||||||
WorkloadResult 30: 1 op, 1000100.00 ns, 1.0001 ms/op
|
|
||||||
WorkloadResult 31: 1 op, 1021400.00 ns, 1.0214 ms/op
|
|
||||||
WorkloadResult 32: 1 op, 1067800.00 ns, 1.0678 ms/op
|
|
||||||
WorkloadResult 33: 1 op, 895200.00 ns, 895.2000 us/op
|
|
||||||
WorkloadResult 34: 1 op, 1090900.00 ns, 1.0909 ms/op
|
|
||||||
WorkloadResult 35: 1 op, 1024900.00 ns, 1.0249 ms/op
|
|
||||||
WorkloadResult 36: 1 op, 1023300.00 ns, 1.0233 ms/op
|
|
||||||
WorkloadResult 37: 1 op, 948200.00 ns, 948.2000 us/op
|
|
||||||
WorkloadResult 38: 1 op, 885200.00 ns, 885.2000 us/op
|
|
||||||
WorkloadResult 39: 1 op, 921900.00 ns, 921.9000 us/op
|
|
||||||
WorkloadResult 40: 1 op, 1065800.00 ns, 1.0658 ms/op
|
|
||||||
WorkloadResult 41: 1 op, 930300.00 ns, 930.3000 us/op
|
|
||||||
WorkloadResult 42: 1 op, 910900.00 ns, 910.9000 us/op
|
|
||||||
WorkloadResult 43: 1 op, 1044200.00 ns, 1.0442 ms/op
|
|
||||||
WorkloadResult 44: 1 op, 1133400.00 ns, 1.1334 ms/op
|
|
||||||
WorkloadResult 45: 1 op, 889600.00 ns, 889.6000 us/op
|
|
||||||
WorkloadResult 46: 1 op, 853100.00 ns, 853.1000 us/op
|
|
||||||
WorkloadResult 47: 1 op, 1062700.00 ns, 1.0627 ms/op
|
|
||||||
WorkloadResult 48: 1 op, 976500.00 ns, 976.5000 us/op
|
|
||||||
WorkloadResult 49: 1 op, 930700.00 ns, 930.7000 us/op
|
|
||||||
WorkloadResult 50: 1 op, 1024600.00 ns, 1.0246 ms/op
|
|
||||||
WorkloadResult 51: 1 op, 1027100.00 ns, 1.0271 ms/op
|
|
||||||
WorkloadResult 52: 1 op, 1011600.00 ns, 1.0116 ms/op
|
|
||||||
WorkloadResult 53: 1 op, 1026700.00 ns, 1.0267 ms/op
|
|
||||||
WorkloadResult 54: 1 op, 1112500.00 ns, 1.1125 ms/op
|
|
||||||
WorkloadResult 55: 1 op, 873600.00 ns, 873.6000 us/op
|
|
||||||
WorkloadResult 56: 1 op, 985000.00 ns, 985.0000 us/op
|
|
||||||
WorkloadResult 57: 1 op, 878100.00 ns, 878.1000 us/op
|
|
||||||
WorkloadResult 58: 1 op, 932800.00 ns, 932.8000 us/op
|
|
||||||
WorkloadResult 59: 1 op, 943400.00 ns, 943.4000 us/op
|
|
||||||
WorkloadResult 60: 1 op, 793500.00 ns, 793.5000 us/op
|
|
||||||
WorkloadResult 61: 1 op, 865800.00 ns, 865.8000 us/op
|
|
||||||
WorkloadResult 62: 1 op, 745200.00 ns, 745.2000 us/op
|
|
||||||
WorkloadResult 63: 1 op, 956700.00 ns, 956.7000 us/op
|
|
||||||
WorkloadResult 64: 1 op, 893600.00 ns, 893.6000 us/op
|
|
||||||
WorkloadResult 65: 1 op, 1005200.00 ns, 1.0052 ms/op
|
|
||||||
WorkloadResult 66: 1 op, 912000.00 ns, 912.0000 us/op
|
|
||||||
WorkloadResult 67: 1 op, 855300.00 ns, 855.3000 us/op
|
|
||||||
WorkloadResult 68: 1 op, 880200.00 ns, 880.2000 us/op
|
|
||||||
WorkloadResult 69: 1 op, 712000.00 ns, 712.0000 us/op
|
|
||||||
WorkloadResult 70: 1 op, 819300.00 ns, 819.3000 us/op
|
|
||||||
WorkloadResult 71: 1 op, 941000.00 ns, 941.0000 us/op
|
|
||||||
WorkloadResult 72: 1 op, 814100.00 ns, 814.1000 us/op
|
|
||||||
WorkloadResult 73: 1 op, 861900.00 ns, 861.9000 us/op
|
|
||||||
WorkloadResult 74: 1 op, 903300.00 ns, 903.3000 us/op
|
|
||||||
WorkloadResult 75: 1 op, 1078600.00 ns, 1.0786 ms/op
|
|
||||||
WorkloadResult 76: 1 op, 878500.00 ns, 878.5000 us/op
|
|
||||||
WorkloadResult 77: 1 op, 757300.00 ns, 757.3000 us/op
|
|
||||||
WorkloadResult 78: 1 op, 1035700.00 ns, 1.0357 ms/op
|
|
||||||
WorkloadResult 79: 1 op, 849000.00 ns, 849.0000 us/op
|
|
||||||
WorkloadResult 80: 1 op, 1034900.00 ns, 1.0349 ms/op
|
|
||||||
WorkloadResult 81: 1 op, 1169300.00 ns, 1.1693 ms/op
|
|
||||||
WorkloadResult 82: 1 op, 1035400.00 ns, 1.0354 ms/op
|
|
||||||
WorkloadResult 83: 1 op, 1048000.00 ns, 1.0480 ms/op
|
|
||||||
WorkloadResult 84: 1 op, 912600.00 ns, 912.6000 us/op
|
|
||||||
WorkloadResult 85: 1 op, 1018900.00 ns, 1.0189 ms/op
|
|
||||||
WorkloadResult 86: 1 op, 1272000.00 ns, 1.2720 ms/op
|
|
||||||
WorkloadResult 87: 1 op, 972700.00 ns, 972.7000 us/op
|
|
||||||
WorkloadResult 88: 1 op, 985100.00 ns, 985.1000 us/op
|
|
||||||
WorkloadResult 89: 1 op, 1008700.00 ns, 1.0087 ms/op
|
|
||||||
WorkloadResult 90: 1 op, 1109800.00 ns, 1.1098 ms/op
|
|
||||||
WorkloadResult 91: 1 op, 1108300.00 ns, 1.1083 ms/op
|
|
||||||
WorkloadResult 92: 1 op, 1041700.00 ns, 1.0417 ms/op
|
|
||||||
WorkloadResult 93: 1 op, 1021000.00 ns, 1.0210 ms/op
|
|
||||||
WorkloadResult 94: 1 op, 1095600.00 ns, 1.0956 ms/op
|
|
||||||
WorkloadResult 95: 1 op, 916900.00 ns, 916.9000 us/op
|
|
||||||
// GC: 0 0 0 624 1
|
|
||||||
// Threading: 0 0 1
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 977.040 μs, StdErr = 11.123 μs (1.14%), N = 95, StdDev = 108.415 μs
|
|
||||||
Min = 712.000 μs, Q1 = 895.550 μs, Median = 985.000 μs, Q3 = 1,038.700 μs, Max = 1,284.300 μs
|
|
||||||
IQR = 143.150 μs, LowerFence = 680.825 μs, UpperFence = 1,253.425 μs
|
|
||||||
ConfidenceInterval = [939.254 μs; 1,014.826 μs] (CI 99.9%), Margin = 37.786 μs (3.87% of Mean)
|
|
||||||
Skewness = 0.2, Kurtosis = 3.14, MValue = 3.28
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:05 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 1.162 ms, StdErr = 0.013 ms (1.10%), N = 99, StdDev = 0.127 ms
|
|
||||||
Min = 0.998 ms, Q1 = 1.062 ms, Median = 1.122 ms, Q3 = 1.240 ms, Max = 1.505 ms
|
|
||||||
IQR = 0.178 ms, LowerFence = 0.795 ms, UpperFence = 1.507 ms
|
|
||||||
ConfidenceInterval = [1.119 ms; 1.206 ms] (CI 99.9%), Margin = 0.043 ms (3.74% of Mean)
|
|
||||||
Skewness = 0.93, Kurtosis = 3.02, MValue = 2.21
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[0.962 ms ; 1.029 ms) | @@@@@
|
|
||||||
[1.029 ms ; 1.101 ms) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[1.101 ms ; 1.175 ms) | @@@@@@@@@@@@@@@@@
|
|
||||||
[1.175 ms ; 1.263 ms) | @@@@@@@@@@@@@@@@@@@
|
|
||||||
[1.263 ms ; 1.358 ms) | @@@@@@@@@@@@
|
|
||||||
[1.358 ms ; 1.433 ms) | @@@
|
|
||||||
[1.433 ms ; 1.521 ms) | @@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 977.040 μs, StdErr = 11.123 μs (1.14%), N = 95, StdDev = 108.415 μs
|
|
||||||
Min = 712.000 μs, Q1 = 895.550 μs, Median = 985.000 μs, Q3 = 1,038.700 μs, Max = 1,284.300 μs
|
|
||||||
IQR = 143.150 μs, LowerFence = 680.825 μs, UpperFence = 1,253.425 μs
|
|
||||||
ConfidenceInterval = [939.254 μs; 1,014.826 μs] (CI 99.9%), Margin = 37.786 μs (3.87% of Mean)
|
|
||||||
Skewness = 0.2, Kurtosis = 3.14, MValue = 3.28
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[ 703.465 μs ; 765.835 μs) | @@@
|
|
||||||
[ 765.835 μs ; 808.015 μs) | @
|
|
||||||
[ 808.015 μs ; 872.815 μs) | @@@@@@@@@
|
|
||||||
[ 872.815 μs ; 935.185 μs) | @@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[ 935.185 μs ; 981.915 μs) | @@@@@@@@@
|
|
||||||
[ 981.915 μs ; 1,053.315 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[1,053.315 μs ; 1,115.685 μs) | @@@@@@@@@@@@@@@
|
|
||||||
[1,115.685 μs ; 1,182.535 μs) | @@@
|
|
||||||
[1,182.535 μs ; 1,246.965 μs) | @
|
|
||||||
[1,246.965 μs ; 1,315.485 μs) | @@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Median | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |-----------:|---------:|---------:|-----------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 1,162.2 μs | 43.41 μs | 127.3 μs | 1,122.2 μs | 1.20 | 0.19 | - | 0.00 |
|
|
||||||
| Libc | 977.0 μs | 37.79 μs | 108.4 μs | 985.0 μs | 1.01 | 0.16 | 624 B | 1.00 |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 998.2μs which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 712.2μs which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
MultimodalDistribution
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> It seems that the distribution is bimodal (mValue = 3.28)
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 1 outlier was removed (1.60 ms)
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 5 outliers were removed (1.36 ms..1.93 ms)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Median : Value separating the higher half of all measurements (50th percentile)
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 μs : 1 Microsecond (0.000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:01 (1.35 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:02 (2.4 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,475 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 262144 op, 119100.00 ns, 0.4543 ns/op
|
|
||||||
WorkloadJitting 1: 262144 op, 142084800.00 ns, 542.0105 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 262144 op, 1000.00 ns, 0.0038 ns/op
|
|
||||||
OverheadWarmup 2: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 3: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 4: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 5: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 6: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 2: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 3: 262144 op, 600.00 ns, 0.0023 ns/op
|
|
||||||
OverheadActual 4: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 5: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 6: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 7: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 8: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 9: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 10: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 11: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 12: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 13: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 14: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 15: 262144 op, 700.00 ns, 0.0027 ns/op
|
|
||||||
OverheadActual 16: 262144 op, 600.00 ns, 0.0023 ns/op
|
|
||||||
OverheadActual 17: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 18: 262144 op, 400.00 ns, 0.0015 ns/op
|
|
||||||
OverheadActual 19: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 20: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 262144 op, 152035400.00 ns, 579.9690 ns/op
|
|
||||||
WorkloadWarmup 2: 262144 op, 120709500.00 ns, 460.4702 ns/op
|
|
||||||
WorkloadWarmup 3: 262144 op, 50792500.00 ns, 193.7580 ns/op
|
|
||||||
WorkloadWarmup 4: 262144 op, 53537300.00 ns, 204.2286 ns/op
|
|
||||||
WorkloadWarmup 5: 262144 op, 47860200.00 ns, 182.5722 ns/op
|
|
||||||
WorkloadWarmup 6: 262144 op, 49233300.00 ns, 187.8101 ns/op
|
|
||||||
WorkloadWarmup 7: 262144 op, 47935100.00 ns, 182.8579 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 262144 op, 45635000.00 ns, 174.0837 ns/op
|
|
||||||
WorkloadActual 2: 262144 op, 44340000.00 ns, 169.1437 ns/op
|
|
||||||
WorkloadActual 3: 262144 op, 43492100.00 ns, 165.9092 ns/op
|
|
||||||
WorkloadActual 4: 262144 op, 42972000.00 ns, 163.9252 ns/op
|
|
||||||
WorkloadActual 5: 262144 op, 45904500.00 ns, 175.1118 ns/op
|
|
||||||
WorkloadActual 6: 262144 op, 43358000.00 ns, 165.3976 ns/op
|
|
||||||
WorkloadActual 7: 262144 op, 40501300.00 ns, 154.5002 ns/op
|
|
||||||
WorkloadActual 8: 262144 op, 40406600.00 ns, 154.1389 ns/op
|
|
||||||
WorkloadActual 9: 262144 op, 40467400.00 ns, 154.3709 ns/op
|
|
||||||
WorkloadActual 10: 262144 op, 39080600.00 ns, 149.0807 ns/op
|
|
||||||
WorkloadActual 11: 262144 op, 39594500.00 ns, 151.0410 ns/op
|
|
||||||
WorkloadActual 12: 262144 op, 42668400.00 ns, 162.7670 ns/op
|
|
||||||
WorkloadActual 13: 262144 op, 40527900.00 ns, 154.6017 ns/op
|
|
||||||
WorkloadActual 14: 262144 op, 40743000.00 ns, 155.4222 ns/op
|
|
||||||
WorkloadActual 15: 262144 op, 39757700.00 ns, 151.6636 ns/op
|
|
||||||
WorkloadActual 16: 262144 op, 40209100.00 ns, 153.3855 ns/op
|
|
||||||
WorkloadActual 17: 262144 op, 40352400.00 ns, 153.9322 ns/op
|
|
||||||
WorkloadActual 18: 262144 op, 41358800.00 ns, 157.7713 ns/op
|
|
||||||
WorkloadActual 19: 262144 op, 40313800.00 ns, 153.7849 ns/op
|
|
||||||
WorkloadActual 20: 262144 op, 39874200.00 ns, 152.1080 ns/op
|
|
||||||
WorkloadActual 21: 262144 op, 38127900.00 ns, 145.4464 ns/op
|
|
||||||
WorkloadActual 22: 262144 op, 37940400.00 ns, 144.7311 ns/op
|
|
||||||
WorkloadActual 23: 262144 op, 38589500.00 ns, 147.2073 ns/op
|
|
||||||
WorkloadActual 24: 262144 op, 38220600.00 ns, 145.8000 ns/op
|
|
||||||
WorkloadActual 25: 262144 op, 41102400.00 ns, 156.7932 ns/op
|
|
||||||
WorkloadActual 26: 262144 op, 38634400.00 ns, 147.3785 ns/op
|
|
||||||
WorkloadActual 27: 262144 op, 38605300.00 ns, 147.2675 ns/op
|
|
||||||
WorkloadActual 28: 262144 op, 39567300.00 ns, 150.9373 ns/op
|
|
||||||
WorkloadActual 29: 262144 op, 42502000.00 ns, 162.1323 ns/op
|
|
||||||
WorkloadActual 30: 262144 op, 47956700.00 ns, 182.9403 ns/op
|
|
||||||
WorkloadActual 31: 262144 op, 39020200.00 ns, 148.8503 ns/op
|
|
||||||
WorkloadActual 32: 262144 op, 39244200.00 ns, 149.7047 ns/op
|
|
||||||
WorkloadActual 33: 262144 op, 37817100.00 ns, 144.2608 ns/op
|
|
||||||
WorkloadActual 34: 262144 op, 41029200.00 ns, 156.5140 ns/op
|
|
||||||
WorkloadActual 35: 262144 op, 39193700.00 ns, 149.5121 ns/op
|
|
||||||
WorkloadActual 36: 262144 op, 38075500.00 ns, 145.2465 ns/op
|
|
||||||
WorkloadActual 37: 262144 op, 38564700.00 ns, 147.1127 ns/op
|
|
||||||
WorkloadActual 38: 262144 op, 37690700.00 ns, 143.7786 ns/op
|
|
||||||
WorkloadActual 39: 262144 op, 38487400.00 ns, 146.8178 ns/op
|
|
||||||
WorkloadActual 40: 262144 op, 39421300.00 ns, 150.3803 ns/op
|
|
||||||
WorkloadActual 41: 262144 op, 39772900.00 ns, 151.7216 ns/op
|
|
||||||
WorkloadActual 42: 262144 op, 41080600.00 ns, 156.7101 ns/op
|
|
||||||
WorkloadActual 43: 262144 op, 42241900.00 ns, 161.1401 ns/op
|
|
||||||
WorkloadActual 44: 262144 op, 41130100.00 ns, 156.8989 ns/op
|
|
||||||
WorkloadActual 45: 262144 op, 41106900.00 ns, 156.8104 ns/op
|
|
||||||
WorkloadActual 46: 262144 op, 40057300.00 ns, 152.8065 ns/op
|
|
||||||
WorkloadActual 47: 262144 op, 39049700.00 ns, 148.9628 ns/op
|
|
||||||
WorkloadActual 48: 262144 op, 41678800.00 ns, 158.9920 ns/op
|
|
||||||
WorkloadActual 49: 262144 op, 39764000.00 ns, 151.6876 ns/op
|
|
||||||
WorkloadActual 50: 262144 op, 40665100.00 ns, 155.1250 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 262144 op, 43491800.00 ns, 165.9081 ns/op
|
|
||||||
WorkloadResult 2: 262144 op, 42971700.00 ns, 163.9240 ns/op
|
|
||||||
WorkloadResult 3: 262144 op, 43357700.00 ns, 165.3965 ns/op
|
|
||||||
WorkloadResult 4: 262144 op, 40501000.00 ns, 154.4991 ns/op
|
|
||||||
WorkloadResult 5: 262144 op, 40406300.00 ns, 154.1378 ns/op
|
|
||||||
WorkloadResult 6: 262144 op, 40467100.00 ns, 154.3697 ns/op
|
|
||||||
WorkloadResult 7: 262144 op, 39080300.00 ns, 149.0795 ns/op
|
|
||||||
WorkloadResult 8: 262144 op, 39594200.00 ns, 151.0399 ns/op
|
|
||||||
WorkloadResult 9: 262144 op, 42668100.00 ns, 162.7659 ns/op
|
|
||||||
WorkloadResult 10: 262144 op, 40527600.00 ns, 154.6005 ns/op
|
|
||||||
WorkloadResult 11: 262144 op, 40742700.00 ns, 155.4211 ns/op
|
|
||||||
WorkloadResult 12: 262144 op, 39757400.00 ns, 151.6624 ns/op
|
|
||||||
WorkloadResult 13: 262144 op, 40208800.00 ns, 153.3844 ns/op
|
|
||||||
WorkloadResult 14: 262144 op, 40352100.00 ns, 153.9310 ns/op
|
|
||||||
WorkloadResult 15: 262144 op, 41358500.00 ns, 157.7702 ns/op
|
|
||||||
WorkloadResult 16: 262144 op, 40313500.00 ns, 153.7838 ns/op
|
|
||||||
WorkloadResult 17: 262144 op, 39873900.00 ns, 152.1069 ns/op
|
|
||||||
WorkloadResult 18: 262144 op, 38127600.00 ns, 145.4453 ns/op
|
|
||||||
WorkloadResult 19: 262144 op, 37940100.00 ns, 144.7300 ns/op
|
|
||||||
WorkloadResult 20: 262144 op, 38589200.00 ns, 147.2061 ns/op
|
|
||||||
WorkloadResult 21: 262144 op, 38220300.00 ns, 145.7989 ns/op
|
|
||||||
WorkloadResult 22: 262144 op, 41102100.00 ns, 156.7921 ns/op
|
|
||||||
WorkloadResult 23: 262144 op, 38634100.00 ns, 147.3774 ns/op
|
|
||||||
WorkloadResult 24: 262144 op, 38605000.00 ns, 147.2664 ns/op
|
|
||||||
WorkloadResult 25: 262144 op, 39567000.00 ns, 150.9361 ns/op
|
|
||||||
WorkloadResult 26: 262144 op, 42501700.00 ns, 162.1311 ns/op
|
|
||||||
WorkloadResult 27: 262144 op, 39019900.00 ns, 148.8491 ns/op
|
|
||||||
WorkloadResult 28: 262144 op, 39243900.00 ns, 149.7036 ns/op
|
|
||||||
WorkloadResult 29: 262144 op, 37816800.00 ns, 144.2596 ns/op
|
|
||||||
WorkloadResult 30: 262144 op, 41028900.00 ns, 156.5128 ns/op
|
|
||||||
WorkloadResult 31: 262144 op, 39193400.00 ns, 149.5110 ns/op
|
|
||||||
WorkloadResult 32: 262144 op, 38075200.00 ns, 145.2454 ns/op
|
|
||||||
WorkloadResult 33: 262144 op, 38564400.00 ns, 147.1115 ns/op
|
|
||||||
WorkloadResult 34: 262144 op, 37690400.00 ns, 143.7775 ns/op
|
|
||||||
WorkloadResult 35: 262144 op, 38487100.00 ns, 146.8166 ns/op
|
|
||||||
WorkloadResult 36: 262144 op, 39421000.00 ns, 150.3792 ns/op
|
|
||||||
WorkloadResult 37: 262144 op, 39772600.00 ns, 151.7204 ns/op
|
|
||||||
WorkloadResult 38: 262144 op, 41080300.00 ns, 156.7089 ns/op
|
|
||||||
WorkloadResult 39: 262144 op, 42241600.00 ns, 161.1389 ns/op
|
|
||||||
WorkloadResult 40: 262144 op, 41129800.00 ns, 156.8977 ns/op
|
|
||||||
WorkloadResult 41: 262144 op, 41106600.00 ns, 156.8092 ns/op
|
|
||||||
WorkloadResult 42: 262144 op, 40057000.00 ns, 152.8053 ns/op
|
|
||||||
WorkloadResult 43: 262144 op, 39049400.00 ns, 148.9616 ns/op
|
|
||||||
WorkloadResult 44: 262144 op, 41678500.00 ns, 158.9909 ns/op
|
|
||||||
WorkloadResult 45: 262144 op, 39763700.00 ns, 151.6865 ns/op
|
|
||||||
WorkloadResult 46: 262144 op, 40664800.00 ns, 155.1239 ns/op
|
|
||||||
// GC: 0 0 0 0 262144
|
|
||||||
// Threading: 0 0 262144
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 152.923 ns, StdErr = 0.850 ns (0.56%), N = 46, StdDev = 5.766 ns
|
|
||||||
Min = 143.777 ns, Q1 = 148.877 ns, Median = 152.456 ns, Q3 = 156.660 ns, Max = 165.908 ns
|
|
||||||
IQR = 7.783 ns, LowerFence = 137.203 ns, UpperFence = 168.334 ns
|
|
||||||
ConfidenceInterval = [149.931 ns; 155.916 ns] (CI 99.9%), Margin = 2.993 ns (1.96% of Mean)
|
|
||||||
Skewness = 0.45, Kurtosis = 2.45, MValue = 2.21
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:11 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 262144 op, 311300.00 ns, 1.1875 ns/op
|
|
||||||
WorkloadJitting 1: 262144 op, 92598900.00 ns, 353.2368 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 262144 op, 1600.00 ns, 0.0061 ns/op
|
|
||||||
OverheadWarmup 2: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 3: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 4: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 5: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadWarmup 6: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 2: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 3: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 4: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 5: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 8: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 9: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 10: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 11: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 12: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 13: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 14: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 15: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 16: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 17: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 18: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 19: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 262144 op, 77216400.00 ns, 294.5572 ns/op
|
|
||||||
WorkloadWarmup 2: 262144 op, 81341800.00 ns, 310.2943 ns/op
|
|
||||||
WorkloadWarmup 3: 262144 op, 47875400.00 ns, 182.6302 ns/op
|
|
||||||
WorkloadWarmup 4: 262144 op, 34848500.00 ns, 132.9365 ns/op
|
|
||||||
WorkloadWarmup 5: 262144 op, 26586200.00 ns, 101.4183 ns/op
|
|
||||||
WorkloadWarmup 6: 262144 op, 23880600.00 ns, 91.0973 ns/op
|
|
||||||
WorkloadWarmup 7: 262144 op, 23589300.00 ns, 89.9860 ns/op
|
|
||||||
WorkloadWarmup 8: 262144 op, 22694900.00 ns, 86.5742 ns/op
|
|
||||||
WorkloadWarmup 9: 262144 op, 23442200.00 ns, 89.4249 ns/op
|
|
||||||
WorkloadWarmup 10: 262144 op, 23310600.00 ns, 88.9229 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 262144 op, 24572700.00 ns, 93.7374 ns/op
|
|
||||||
WorkloadActual 2: 262144 op, 21973300.00 ns, 83.8215 ns/op
|
|
||||||
WorkloadActual 3: 262144 op, 24617000.00 ns, 93.9064 ns/op
|
|
||||||
WorkloadActual 4: 262144 op, 22796500.00 ns, 86.9617 ns/op
|
|
||||||
WorkloadActual 5: 262144 op, 24119100.00 ns, 92.0071 ns/op
|
|
||||||
WorkloadActual 6: 262144 op, 25735300.00 ns, 98.1724 ns/op
|
|
||||||
WorkloadActual 7: 262144 op, 24709500.00 ns, 94.2593 ns/op
|
|
||||||
WorkloadActual 8: 262144 op, 24232300.00 ns, 92.4389 ns/op
|
|
||||||
WorkloadActual 9: 262144 op, 24873400.00 ns, 94.8845 ns/op
|
|
||||||
WorkloadActual 10: 262144 op, 26115400.00 ns, 99.6223 ns/op
|
|
||||||
WorkloadActual 11: 262144 op, 21777600.00 ns, 83.0750 ns/op
|
|
||||||
WorkloadActual 12: 262144 op, 22346500.00 ns, 85.2451 ns/op
|
|
||||||
WorkloadActual 13: 262144 op, 21014200.00 ns, 80.1628 ns/op
|
|
||||||
WorkloadActual 14: 262144 op, 22810200.00 ns, 87.0140 ns/op
|
|
||||||
WorkloadActual 15: 262144 op, 23287000.00 ns, 88.8329 ns/op
|
|
||||||
WorkloadActual 16: 262144 op, 23283300.00 ns, 88.8187 ns/op
|
|
||||||
WorkloadActual 17: 262144 op, 24027100.00 ns, 91.6561 ns/op
|
|
||||||
WorkloadActual 18: 262144 op, 24106200.00 ns, 91.9579 ns/op
|
|
||||||
WorkloadActual 19: 262144 op, 27029300.00 ns, 103.1086 ns/op
|
|
||||||
WorkloadActual 20: 262144 op, 25856500.00 ns, 98.6347 ns/op
|
|
||||||
WorkloadActual 21: 262144 op, 24334400.00 ns, 92.8284 ns/op
|
|
||||||
WorkloadActual 22: 262144 op, 24478600.00 ns, 93.3784 ns/op
|
|
||||||
WorkloadActual 23: 262144 op, 21801100.00 ns, 83.1646 ns/op
|
|
||||||
WorkloadActual 24: 262144 op, 24189200.00 ns, 92.2745 ns/op
|
|
||||||
WorkloadActual 25: 262144 op, 23583300.00 ns, 89.9632 ns/op
|
|
||||||
WorkloadActual 26: 262144 op, 23064100.00 ns, 87.9826 ns/op
|
|
||||||
WorkloadActual 27: 262144 op, 24515500.00 ns, 93.5192 ns/op
|
|
||||||
WorkloadActual 28: 262144 op, 24114500.00 ns, 91.9895 ns/op
|
|
||||||
WorkloadActual 29: 262144 op, 23079100.00 ns, 88.0398 ns/op
|
|
||||||
WorkloadActual 30: 262144 op, 24616600.00 ns, 93.9049 ns/op
|
|
||||||
WorkloadActual 31: 262144 op, 24865300.00 ns, 94.8536 ns/op
|
|
||||||
WorkloadActual 32: 262144 op, 22142300.00 ns, 84.4662 ns/op
|
|
||||||
WorkloadActual 33: 262144 op, 23112000.00 ns, 88.1653 ns/op
|
|
||||||
WorkloadActual 34: 262144 op, 23923900.00 ns, 91.2624 ns/op
|
|
||||||
WorkloadActual 35: 262144 op, 24726900.00 ns, 94.3256 ns/op
|
|
||||||
WorkloadActual 36: 262144 op, 24681800.00 ns, 94.1536 ns/op
|
|
||||||
WorkloadActual 37: 262144 op, 22347700.00 ns, 85.2497 ns/op
|
|
||||||
WorkloadActual 38: 262144 op, 23335100.00 ns, 89.0163 ns/op
|
|
||||||
WorkloadActual 39: 262144 op, 22427700.00 ns, 85.5549 ns/op
|
|
||||||
WorkloadActual 40: 262144 op, 22261000.00 ns, 84.9190 ns/op
|
|
||||||
WorkloadActual 41: 262144 op, 23516700.00 ns, 89.7091 ns/op
|
|
||||||
WorkloadActual 42: 262144 op, 23285900.00 ns, 88.8287 ns/op
|
|
||||||
WorkloadActual 43: 262144 op, 24345700.00 ns, 92.8715 ns/op
|
|
||||||
WorkloadActual 44: 262144 op, 22761000.00 ns, 86.8263 ns/op
|
|
||||||
WorkloadActual 45: 262144 op, 21969900.00 ns, 83.8085 ns/op
|
|
||||||
WorkloadActual 46: 262144 op, 23566200.00 ns, 89.8979 ns/op
|
|
||||||
WorkloadActual 47: 262144 op, 22317300.00 ns, 85.1337 ns/op
|
|
||||||
WorkloadActual 48: 262144 op, 22817100.00 ns, 87.0403 ns/op
|
|
||||||
WorkloadActual 49: 262144 op, 23344900.00 ns, 89.0537 ns/op
|
|
||||||
WorkloadActual 50: 262144 op, 24114200.00 ns, 91.9884 ns/op
|
|
||||||
WorkloadActual 51: 262144 op, 22212200.00 ns, 84.7328 ns/op
|
|
||||||
WorkloadActual 52: 262144 op, 23020700.00 ns, 87.8170 ns/op
|
|
||||||
WorkloadActual 53: 262144 op, 19787000.00 ns, 75.4814 ns/op
|
|
||||||
WorkloadActual 54: 262144 op, 22155100.00 ns, 84.5150 ns/op
|
|
||||||
WorkloadActual 55: 262144 op, 21446100.00 ns, 81.8104 ns/op
|
|
||||||
WorkloadActual 56: 262144 op, 23495100.00 ns, 89.6267 ns/op
|
|
||||||
WorkloadActual 57: 262144 op, 21560500.00 ns, 82.2468 ns/op
|
|
||||||
WorkloadActual 58: 262144 op, 24881800.00 ns, 94.9165 ns/op
|
|
||||||
WorkloadActual 59: 262144 op, 24142300.00 ns, 92.0956 ns/op
|
|
||||||
WorkloadActual 60: 262144 op, 23274100.00 ns, 88.7836 ns/op
|
|
||||||
WorkloadActual 61: 262144 op, 23932100.00 ns, 91.2937 ns/op
|
|
||||||
WorkloadActual 62: 262144 op, 23728200.00 ns, 90.5159 ns/op
|
|
||||||
WorkloadActual 63: 262144 op, 22081000.00 ns, 84.2323 ns/op
|
|
||||||
WorkloadActual 64: 262144 op, 23886800.00 ns, 91.1209 ns/op
|
|
||||||
WorkloadActual 65: 262144 op, 23390400.00 ns, 89.2273 ns/op
|
|
||||||
WorkloadActual 66: 262144 op, 23821000.00 ns, 90.8699 ns/op
|
|
||||||
WorkloadActual 67: 262144 op, 23570900.00 ns, 89.9158 ns/op
|
|
||||||
WorkloadActual 68: 262144 op, 23141300.00 ns, 88.2771 ns/op
|
|
||||||
WorkloadActual 69: 262144 op, 22405300.00 ns, 85.4694 ns/op
|
|
||||||
WorkloadActual 70: 262144 op, 24378000.00 ns, 92.9947 ns/op
|
|
||||||
WorkloadActual 71: 262144 op, 22381200.00 ns, 85.3775 ns/op
|
|
||||||
WorkloadActual 72: 262144 op, 23387000.00 ns, 89.2143 ns/op
|
|
||||||
WorkloadActual 73: 262144 op, 23225100.00 ns, 88.5967 ns/op
|
|
||||||
WorkloadActual 74: 262144 op, 24327500.00 ns, 92.8020 ns/op
|
|
||||||
WorkloadActual 75: 262144 op, 29341100.00 ns, 111.9274 ns/op
|
|
||||||
WorkloadActual 76: 262144 op, 26930800.00 ns, 102.7328 ns/op
|
|
||||||
WorkloadActual 77: 262144 op, 25463100.00 ns, 97.1340 ns/op
|
|
||||||
WorkloadActual 78: 262144 op, 22738800.00 ns, 86.7416 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 262144 op, 24572500.00 ns, 93.7366 ns/op
|
|
||||||
WorkloadResult 2: 262144 op, 21973100.00 ns, 83.8207 ns/op
|
|
||||||
WorkloadResult 3: 262144 op, 24616800.00 ns, 93.9056 ns/op
|
|
||||||
WorkloadResult 4: 262144 op, 22796300.00 ns, 86.9610 ns/op
|
|
||||||
WorkloadResult 5: 262144 op, 24118900.00 ns, 92.0063 ns/op
|
|
||||||
WorkloadResult 6: 262144 op, 25735100.00 ns, 98.1716 ns/op
|
|
||||||
WorkloadResult 7: 262144 op, 24709300.00 ns, 94.2585 ns/op
|
|
||||||
WorkloadResult 8: 262144 op, 24232100.00 ns, 92.4381 ns/op
|
|
||||||
WorkloadResult 9: 262144 op, 24873200.00 ns, 94.8837 ns/op
|
|
||||||
WorkloadResult 10: 262144 op, 26115200.00 ns, 99.6216 ns/op
|
|
||||||
WorkloadResult 11: 262144 op, 21777400.00 ns, 83.0742 ns/op
|
|
||||||
WorkloadResult 12: 262144 op, 22346300.00 ns, 85.2444 ns/op
|
|
||||||
WorkloadResult 13: 262144 op, 21014000.00 ns, 80.1620 ns/op
|
|
||||||
WorkloadResult 14: 262144 op, 22810000.00 ns, 87.0132 ns/op
|
|
||||||
WorkloadResult 15: 262144 op, 23286800.00 ns, 88.8321 ns/op
|
|
||||||
WorkloadResult 16: 262144 op, 23283100.00 ns, 88.8180 ns/op
|
|
||||||
WorkloadResult 17: 262144 op, 24026900.00 ns, 91.6553 ns/op
|
|
||||||
WorkloadResult 18: 262144 op, 24106000.00 ns, 91.9571 ns/op
|
|
||||||
WorkloadResult 19: 262144 op, 25856300.00 ns, 98.6340 ns/op
|
|
||||||
WorkloadResult 20: 262144 op, 24334200.00 ns, 92.8276 ns/op
|
|
||||||
WorkloadResult 21: 262144 op, 24478400.00 ns, 93.3777 ns/op
|
|
||||||
WorkloadResult 22: 262144 op, 21800900.00 ns, 83.1638 ns/op
|
|
||||||
WorkloadResult 23: 262144 op, 24189000.00 ns, 92.2737 ns/op
|
|
||||||
WorkloadResult 24: 262144 op, 23583100.00 ns, 89.9624 ns/op
|
|
||||||
WorkloadResult 25: 262144 op, 23063900.00 ns, 87.9818 ns/op
|
|
||||||
WorkloadResult 26: 262144 op, 24515300.00 ns, 93.5184 ns/op
|
|
||||||
WorkloadResult 27: 262144 op, 24114300.00 ns, 91.9888 ns/op
|
|
||||||
WorkloadResult 28: 262144 op, 23078900.00 ns, 88.0390 ns/op
|
|
||||||
WorkloadResult 29: 262144 op, 24616400.00 ns, 93.9041 ns/op
|
|
||||||
WorkloadResult 30: 262144 op, 24865100.00 ns, 94.8528 ns/op
|
|
||||||
WorkloadResult 31: 262144 op, 22142100.00 ns, 84.4654 ns/op
|
|
||||||
WorkloadResult 32: 262144 op, 23111800.00 ns, 88.1645 ns/op
|
|
||||||
WorkloadResult 33: 262144 op, 23923700.00 ns, 91.2617 ns/op
|
|
||||||
WorkloadResult 34: 262144 op, 24726700.00 ns, 94.3249 ns/op
|
|
||||||
WorkloadResult 35: 262144 op, 24681600.00 ns, 94.1528 ns/op
|
|
||||||
WorkloadResult 36: 262144 op, 22347500.00 ns, 85.2489 ns/op
|
|
||||||
WorkloadResult 37: 262144 op, 23334900.00 ns, 89.0156 ns/op
|
|
||||||
WorkloadResult 38: 262144 op, 22427500.00 ns, 85.5541 ns/op
|
|
||||||
WorkloadResult 39: 262144 op, 22260800.00 ns, 84.9182 ns/op
|
|
||||||
WorkloadResult 40: 262144 op, 23516500.00 ns, 89.7083 ns/op
|
|
||||||
WorkloadResult 41: 262144 op, 23285700.00 ns, 88.8279 ns/op
|
|
||||||
WorkloadResult 42: 262144 op, 24345500.00 ns, 92.8707 ns/op
|
|
||||||
WorkloadResult 43: 262144 op, 22760800.00 ns, 86.8256 ns/op
|
|
||||||
WorkloadResult 44: 262144 op, 21969700.00 ns, 83.8078 ns/op
|
|
||||||
WorkloadResult 45: 262144 op, 23566000.00 ns, 89.8972 ns/op
|
|
||||||
WorkloadResult 46: 262144 op, 22317100.00 ns, 85.1330 ns/op
|
|
||||||
WorkloadResult 47: 262144 op, 22816900.00 ns, 87.0396 ns/op
|
|
||||||
WorkloadResult 48: 262144 op, 23344700.00 ns, 89.0530 ns/op
|
|
||||||
WorkloadResult 49: 262144 op, 24114000.00 ns, 91.9876 ns/op
|
|
||||||
WorkloadResult 50: 262144 op, 22212000.00 ns, 84.7321 ns/op
|
|
||||||
WorkloadResult 51: 262144 op, 23020500.00 ns, 87.8162 ns/op
|
|
||||||
WorkloadResult 52: 262144 op, 19786800.00 ns, 75.4807 ns/op
|
|
||||||
WorkloadResult 53: 262144 op, 22154900.00 ns, 84.5142 ns/op
|
|
||||||
WorkloadResult 54: 262144 op, 21445900.00 ns, 81.8096 ns/op
|
|
||||||
WorkloadResult 55: 262144 op, 23494900.00 ns, 89.6259 ns/op
|
|
||||||
WorkloadResult 56: 262144 op, 21560300.00 ns, 82.2460 ns/op
|
|
||||||
WorkloadResult 57: 262144 op, 24881600.00 ns, 94.9158 ns/op
|
|
||||||
WorkloadResult 58: 262144 op, 24142100.00 ns, 92.0948 ns/op
|
|
||||||
WorkloadResult 59: 262144 op, 23273900.00 ns, 88.7829 ns/op
|
|
||||||
WorkloadResult 60: 262144 op, 23931900.00 ns, 91.2930 ns/op
|
|
||||||
WorkloadResult 61: 262144 op, 23728000.00 ns, 90.5151 ns/op
|
|
||||||
WorkloadResult 62: 262144 op, 22080800.00 ns, 84.2316 ns/op
|
|
||||||
WorkloadResult 63: 262144 op, 23886600.00 ns, 91.1201 ns/op
|
|
||||||
WorkloadResult 64: 262144 op, 23390200.00 ns, 89.2265 ns/op
|
|
||||||
WorkloadResult 65: 262144 op, 23820800.00 ns, 90.8691 ns/op
|
|
||||||
WorkloadResult 66: 262144 op, 23570700.00 ns, 89.9151 ns/op
|
|
||||||
WorkloadResult 67: 262144 op, 23141100.00 ns, 88.2763 ns/op
|
|
||||||
WorkloadResult 68: 262144 op, 22405100.00 ns, 85.4687 ns/op
|
|
||||||
WorkloadResult 69: 262144 op, 24377800.00 ns, 92.9939 ns/op
|
|
||||||
WorkloadResult 70: 262144 op, 22381000.00 ns, 85.3767 ns/op
|
|
||||||
WorkloadResult 71: 262144 op, 23386800.00 ns, 89.2136 ns/op
|
|
||||||
WorkloadResult 72: 262144 op, 23224900.00 ns, 88.5960 ns/op
|
|
||||||
WorkloadResult 73: 262144 op, 24327300.00 ns, 92.8013 ns/op
|
|
||||||
WorkloadResult 74: 262144 op, 25462900.00 ns, 97.1333 ns/op
|
|
||||||
WorkloadResult 75: 262144 op, 22738600.00 ns, 86.7409 ns/op
|
|
||||||
// GC: 0 0 0 288 262144
|
|
||||||
// Threading: 0 0 262144
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 89.402 ns, StdErr = 0.517 ns (0.58%), N = 75, StdDev = 4.481 ns
|
|
||||||
Min = 75.481 ns, Q1 = 86.147 ns, Median = 89.227 ns, Q3 = 92.620 ns, Max = 99.622 ns
|
|
||||||
IQR = 6.472 ns, LowerFence = 76.439 ns, UpperFence = 102.328 ns
|
|
||||||
ConfidenceInterval = [87.628 ns; 91.175 ns] (CI 99.9%), Margin = 1.773 ns (1.98% of Mean)
|
|
||||||
Skewness = -0.24, Kurtosis = 3.15, MValue = 2.8
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:11 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 152.923 ns, StdErr = 0.850 ns (0.56%), N = 46, StdDev = 5.766 ns
|
|
||||||
Min = 143.777 ns, Q1 = 148.877 ns, Median = 152.456 ns, Q3 = 156.660 ns, Max = 165.908 ns
|
|
||||||
IQR = 7.783 ns, LowerFence = 137.203 ns, UpperFence = 168.334 ns
|
|
||||||
ConfidenceInterval = [149.931 ns; 155.916 ns] (CI 99.9%), Margin = 2.993 ns (1.96% of Mean)
|
|
||||||
Skewness = 0.45, Kurtosis = 2.45, MValue = 2.21
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[142.676 ns ; 146.816 ns) | @@@@@@
|
|
||||||
[146.816 ns ; 151.040 ns) | @@@@@@@@@@@@@
|
|
||||||
[151.040 ns ; 156.964 ns) | @@@@@@@@@@@@@@@@@@@
|
|
||||||
[156.964 ns ; 161.907 ns) | @@@
|
|
||||||
[161.907 ns ; 166.132 ns) | @@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 89.402 ns, StdErr = 0.517 ns (0.58%), N = 75, StdDev = 4.481 ns
|
|
||||||
Min = 75.481 ns, Q1 = 86.147 ns, Median = 89.227 ns, Q3 = 92.620 ns, Max = 99.622 ns
|
|
||||||
IQR = 6.472 ns, LowerFence = 76.439 ns, UpperFence = 102.328 ns
|
|
||||||
ConfidenceInterval = [87.628 ns; 91.175 ns] (CI 99.9%), Margin = 1.773 ns (1.98% of Mean)
|
|
||||||
Skewness = -0.24, Kurtosis = 3.15, MValue = 2.8
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[74.086 ns ; 76.875 ns) | @
|
|
||||||
[76.875 ns ; 79.809 ns) |
|
|
||||||
[79.809 ns ; 82.919 ns) | @@@
|
|
||||||
[82.919 ns ; 85.709 ns) | @@@@@@@@@@@@@@@
|
|
||||||
[85.709 ns ; 87.771 ns) | @@@@@
|
|
||||||
[87.771 ns ; 90.560 ns) | @@@@@@@@@@@@@@@@@@@@
|
|
||||||
[90.560 ns ; 94.385 ns) | @@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[94.385 ns ; 97.388 ns) | @@@@
|
|
||||||
[97.388 ns ; 100.291 ns) | @@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |----------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 152.92 ns | 2.993 ns | 5.766 ns | 1.71 | 0.11 | - | NA |
|
|
||||||
| Libc | 89.40 ns | 1.773 ns | 4.481 ns | 1.00 | 0.07 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 37.691ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 19.787ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 4 outliers were removed (169.14 ns..182.94 ns)
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 3 outliers were removed, 4 outliers were detected (75.48 ns, 102.73 ns..111.93 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:06 (6.84 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:07 (7.74 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,424 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 262144 op, 106700.00 ns, 0.4070 ns/op
|
|
||||||
WorkloadJitting 1: 262144 op, 122658100.00 ns, 467.9035 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 262144 op, 1200.00 ns, 0.0046 ns/op
|
|
||||||
OverheadWarmup 2: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadWarmup 3: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 4: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 5: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 7: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 2: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 3: 262144 op, 500.00 ns, 0.0019 ns/op
|
|
||||||
OverheadActual 4: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 5: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 6: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 15: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 16: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 262144 op, 400.00 ns, 0.0015 ns/op
|
|
||||||
OverheadActual 18: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 19: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 262144 op, 110857600.00 ns, 422.8882 ns/op
|
|
||||||
WorkloadWarmup 2: 262144 op, 110685900.00 ns, 422.2332 ns/op
|
|
||||||
WorkloadWarmup 3: 262144 op, 60418200.00 ns, 230.4771 ns/op
|
|
||||||
WorkloadWarmup 4: 262144 op, 35849400.00 ns, 136.7546 ns/op
|
|
||||||
WorkloadWarmup 5: 262144 op, 36337400.00 ns, 138.6162 ns/op
|
|
||||||
WorkloadWarmup 6: 262144 op, 35980600.00 ns, 137.2551 ns/op
|
|
||||||
WorkloadWarmup 7: 262144 op, 36068200.00 ns, 137.5893 ns/op
|
|
||||||
WorkloadWarmup 8: 262144 op, 35766000.00 ns, 136.4365 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 262144 op, 35397300.00 ns, 135.0300 ns/op
|
|
||||||
WorkloadActual 2: 262144 op, 35901100.00 ns, 136.9518 ns/op
|
|
||||||
WorkloadActual 3: 262144 op, 36879000.00 ns, 140.6822 ns/op
|
|
||||||
WorkloadActual 4: 262144 op, 37440900.00 ns, 142.8257 ns/op
|
|
||||||
WorkloadActual 5: 262144 op, 37170700.00 ns, 141.7950 ns/op
|
|
||||||
WorkloadActual 6: 262144 op, 36973700.00 ns, 141.0435 ns/op
|
|
||||||
WorkloadActual 7: 262144 op, 35979000.00 ns, 137.2490 ns/op
|
|
||||||
WorkloadActual 8: 262144 op, 35645700.00 ns, 135.9776 ns/op
|
|
||||||
WorkloadActual 9: 262144 op, 35439400.00 ns, 135.1906 ns/op
|
|
||||||
WorkloadActual 10: 262144 op, 35531000.00 ns, 135.5400 ns/op
|
|
||||||
WorkloadActual 11: 262144 op, 36466900.00 ns, 139.1102 ns/op
|
|
||||||
WorkloadActual 12: 262144 op, 35649900.00 ns, 135.9936 ns/op
|
|
||||||
WorkloadActual 13: 262144 op, 35991100.00 ns, 137.2952 ns/op
|
|
||||||
WorkloadActual 14: 262144 op, 36790600.00 ns, 140.3450 ns/op
|
|
||||||
WorkloadActual 15: 262144 op, 36337700.00 ns, 138.6173 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 262144 op, 35397200.00 ns, 135.0296 ns/op
|
|
||||||
WorkloadResult 2: 262144 op, 35901000.00 ns, 136.9514 ns/op
|
|
||||||
WorkloadResult 3: 262144 op, 36878900.00 ns, 140.6818 ns/op
|
|
||||||
WorkloadResult 4: 262144 op, 37440800.00 ns, 142.8253 ns/op
|
|
||||||
WorkloadResult 5: 262144 op, 37170600.00 ns, 141.7946 ns/op
|
|
||||||
WorkloadResult 6: 262144 op, 36973600.00 ns, 141.0431 ns/op
|
|
||||||
WorkloadResult 7: 262144 op, 35978900.00 ns, 137.2486 ns/op
|
|
||||||
WorkloadResult 8: 262144 op, 35645600.00 ns, 135.9772 ns/op
|
|
||||||
WorkloadResult 9: 262144 op, 35439300.00 ns, 135.1902 ns/op
|
|
||||||
WorkloadResult 10: 262144 op, 35530900.00 ns, 135.5396 ns/op
|
|
||||||
WorkloadResult 11: 262144 op, 36466800.00 ns, 139.1098 ns/op
|
|
||||||
WorkloadResult 12: 262144 op, 35649800.00 ns, 135.9932 ns/op
|
|
||||||
WorkloadResult 13: 262144 op, 35991000.00 ns, 137.2948 ns/op
|
|
||||||
WorkloadResult 14: 262144 op, 36790500.00 ns, 140.3446 ns/op
|
|
||||||
WorkloadResult 15: 262144 op, 36337600.00 ns, 138.6169 ns/op
|
|
||||||
// GC: 0 0 0 0 262144
|
|
||||||
// Threading: 0 0 262144
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 138.243 ns, StdErr = 0.667 ns (0.48%), N = 15, StdDev = 2.583 ns
|
|
||||||
Min = 135.030 ns, Q1 = 135.985 ns, Median = 137.295 ns, Q3 = 140.513 ns, Max = 142.825 ns
|
|
||||||
IQR = 4.528 ns, LowerFence = 129.193 ns, UpperFence = 147.305 ns
|
|
||||||
ConfidenceInterval = [135.481 ns; 141.004 ns] (CI 99.9%), Margin = 2.761 ns (2.00% of Mean)
|
|
||||||
Skewness = 0.31, Kurtosis = 1.53, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:11 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 262144 op, 108300.00 ns, 0.4131 ns/op
|
|
||||||
WorkloadJitting 1: 262144 op, 87379000.00 ns, 333.3244 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 262144 op, 1400.00 ns, 0.0053 ns/op
|
|
||||||
OverheadWarmup 2: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 3: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 4: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 5: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 6: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 3: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 7: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 9: 262144 op, 300.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 10: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 12: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 14: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 15: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 16: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 19: 262144 op, 100.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 262144 op, 200.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 262144 op, 82202900.00 ns, 313.5792 ns/op
|
|
||||||
WorkloadWarmup 2: 262144 op, 71759200.00 ns, 273.7396 ns/op
|
|
||||||
WorkloadWarmup 3: 262144 op, 51490600.00 ns, 196.4211 ns/op
|
|
||||||
WorkloadWarmup 4: 262144 op, 25013800.00 ns, 95.4201 ns/op
|
|
||||||
WorkloadWarmup 5: 262144 op, 23585400.00 ns, 89.9712 ns/op
|
|
||||||
WorkloadWarmup 6: 262144 op, 23447700.00 ns, 89.4459 ns/op
|
|
||||||
WorkloadWarmup 7: 262144 op, 24088400.00 ns, 91.8900 ns/op
|
|
||||||
WorkloadWarmup 8: 262144 op, 22121700.00 ns, 84.3876 ns/op
|
|
||||||
WorkloadWarmup 9: 262144 op, 23537300.00 ns, 89.7877 ns/op
|
|
||||||
WorkloadWarmup 10: 262144 op, 23602700.00 ns, 90.0372 ns/op
|
|
||||||
WorkloadWarmup 11: 262144 op, 24112000.00 ns, 91.9800 ns/op
|
|
||||||
WorkloadWarmup 12: 262144 op, 25337600.00 ns, 96.6553 ns/op
|
|
||||||
WorkloadWarmup 13: 262144 op, 22122200.00 ns, 84.3895 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 262144 op, 24011900.00 ns, 91.5981 ns/op
|
|
||||||
WorkloadActual 2: 262144 op, 23371000.00 ns, 89.1533 ns/op
|
|
||||||
WorkloadActual 3: 262144 op, 23321700.00 ns, 88.9652 ns/op
|
|
||||||
WorkloadActual 4: 262144 op, 21343500.00 ns, 81.4190 ns/op
|
|
||||||
WorkloadActual 5: 262144 op, 23063800.00 ns, 87.9814 ns/op
|
|
||||||
WorkloadActual 6: 262144 op, 20906600.00 ns, 79.7523 ns/op
|
|
||||||
WorkloadActual 7: 262144 op, 21050500.00 ns, 80.3013 ns/op
|
|
||||||
WorkloadActual 8: 262144 op, 21801300.00 ns, 83.1654 ns/op
|
|
||||||
WorkloadActual 9: 262144 op, 21220000.00 ns, 80.9479 ns/op
|
|
||||||
WorkloadActual 10: 262144 op, 23346000.00 ns, 89.0579 ns/op
|
|
||||||
WorkloadActual 11: 262144 op, 19406000.00 ns, 74.0280 ns/op
|
|
||||||
WorkloadActual 12: 262144 op, 19528300.00 ns, 74.4946 ns/op
|
|
||||||
WorkloadActual 13: 262144 op, 22318200.00 ns, 85.1372 ns/op
|
|
||||||
WorkloadActual 14: 262144 op, 22491900.00 ns, 85.7998 ns/op
|
|
||||||
WorkloadActual 15: 262144 op, 19781500.00 ns, 75.4604 ns/op
|
|
||||||
WorkloadActual 16: 262144 op, 20619600.00 ns, 78.6575 ns/op
|
|
||||||
WorkloadActual 17: 262144 op, 23867200.00 ns, 91.0461 ns/op
|
|
||||||
WorkloadActual 18: 262144 op, 20877300.00 ns, 79.6406 ns/op
|
|
||||||
WorkloadActual 19: 262144 op, 22184300.00 ns, 84.6264 ns/op
|
|
||||||
WorkloadActual 20: 262144 op, 22826100.00 ns, 87.0747 ns/op
|
|
||||||
WorkloadActual 21: 262144 op, 21267300.00 ns, 81.1283 ns/op
|
|
||||||
WorkloadActual 22: 262144 op, 22571400.00 ns, 86.1031 ns/op
|
|
||||||
WorkloadActual 23: 262144 op, 23137500.00 ns, 88.2626 ns/op
|
|
||||||
WorkloadActual 24: 262144 op, 23343200.00 ns, 89.0472 ns/op
|
|
||||||
WorkloadActual 25: 262144 op, 23253900.00 ns, 88.7066 ns/op
|
|
||||||
WorkloadActual 26: 262144 op, 19790400.00 ns, 75.4944 ns/op
|
|
||||||
WorkloadActual 27: 262144 op, 20864400.00 ns, 79.5914 ns/op
|
|
||||||
WorkloadActual 28: 262144 op, 21747000.00 ns, 82.9582 ns/op
|
|
||||||
WorkloadActual 29: 262144 op, 23244100.00 ns, 88.6692 ns/op
|
|
||||||
WorkloadActual 30: 262144 op, 21659200.00 ns, 82.6233 ns/op
|
|
||||||
WorkloadActual 31: 262144 op, 21297200.00 ns, 81.2424 ns/op
|
|
||||||
WorkloadActual 32: 262144 op, 22508800.00 ns, 85.8643 ns/op
|
|
||||||
WorkloadActual 33: 262144 op, 22749300.00 ns, 86.7817 ns/op
|
|
||||||
WorkloadActual 34: 262144 op, 21880800.00 ns, 83.4686 ns/op
|
|
||||||
WorkloadActual 35: 262144 op, 21588200.00 ns, 82.3524 ns/op
|
|
||||||
WorkloadActual 36: 262144 op, 22222200.00 ns, 84.7710 ns/op
|
|
||||||
WorkloadActual 37: 262144 op, 20352200.00 ns, 77.6375 ns/op
|
|
||||||
WorkloadActual 38: 262144 op, 19748600.00 ns, 75.3349 ns/op
|
|
||||||
WorkloadActual 39: 262144 op, 20983700.00 ns, 80.0465 ns/op
|
|
||||||
WorkloadActual 40: 262144 op, 21518000.00 ns, 82.0847 ns/op
|
|
||||||
WorkloadActual 41: 262144 op, 22015500.00 ns, 83.9825 ns/op
|
|
||||||
WorkloadActual 42: 262144 op, 21963700.00 ns, 83.7849 ns/op
|
|
||||||
WorkloadActual 43: 262144 op, 20773400.00 ns, 79.2442 ns/op
|
|
||||||
WorkloadActual 44: 262144 op, 21364700.00 ns, 81.4999 ns/op
|
|
||||||
WorkloadActual 45: 262144 op, 19468000.00 ns, 74.2645 ns/op
|
|
||||||
WorkloadActual 46: 262144 op, 19714800.00 ns, 75.2060 ns/op
|
|
||||||
WorkloadActual 47: 262144 op, 20115200.00 ns, 76.7334 ns/op
|
|
||||||
WorkloadActual 48: 262144 op, 20625200.00 ns, 78.6789 ns/op
|
|
||||||
WorkloadActual 49: 262144 op, 22247200.00 ns, 84.8663 ns/op
|
|
||||||
WorkloadActual 50: 262144 op, 23786600.00 ns, 90.7387 ns/op
|
|
||||||
WorkloadActual 51: 262144 op, 21150400.00 ns, 80.6824 ns/op
|
|
||||||
WorkloadActual 52: 262144 op, 23360400.00 ns, 89.1129 ns/op
|
|
||||||
WorkloadActual 53: 262144 op, 19543800.00 ns, 74.5537 ns/op
|
|
||||||
WorkloadActual 54: 262144 op, 21550500.00 ns, 82.2086 ns/op
|
|
||||||
WorkloadActual 55: 262144 op, 21785900.00 ns, 83.1066 ns/op
|
|
||||||
WorkloadActual 56: 262144 op, 21197800.00 ns, 80.8632 ns/op
|
|
||||||
WorkloadActual 57: 262144 op, 21736600.00 ns, 82.9185 ns/op
|
|
||||||
WorkloadActual 58: 262144 op, 22608800.00 ns, 86.2457 ns/op
|
|
||||||
WorkloadActual 59: 262144 op, 20705800.00 ns, 78.9864 ns/op
|
|
||||||
WorkloadActual 60: 262144 op, 21855300.00 ns, 83.3714 ns/op
|
|
||||||
WorkloadActual 61: 262144 op, 21007100.00 ns, 80.1357 ns/op
|
|
||||||
WorkloadActual 62: 262144 op, 21801900.00 ns, 83.1676 ns/op
|
|
||||||
WorkloadActual 63: 262144 op, 19716700.00 ns, 75.2132 ns/op
|
|
||||||
WorkloadActual 64: 262144 op, 21014300.00 ns, 80.1632 ns/op
|
|
||||||
WorkloadActual 65: 262144 op, 20608700.00 ns, 78.6160 ns/op
|
|
||||||
WorkloadActual 66: 262144 op, 22831200.00 ns, 87.0941 ns/op
|
|
||||||
WorkloadActual 67: 262144 op, 22645600.00 ns, 86.3861 ns/op
|
|
||||||
WorkloadActual 68: 262144 op, 22753500.00 ns, 86.7977 ns/op
|
|
||||||
WorkloadActual 69: 262144 op, 23598100.00 ns, 90.0196 ns/op
|
|
||||||
WorkloadActual 70: 262144 op, 20028400.00 ns, 76.4023 ns/op
|
|
||||||
WorkloadActual 71: 262144 op, 21380800.00 ns, 81.5613 ns/op
|
|
||||||
WorkloadActual 72: 262144 op, 20425400.00 ns, 77.9167 ns/op
|
|
||||||
WorkloadActual 73: 262144 op, 21381600.00 ns, 81.5643 ns/op
|
|
||||||
WorkloadActual 74: 262144 op, 22957000.00 ns, 87.5740 ns/op
|
|
||||||
WorkloadActual 75: 262144 op, 19953100.00 ns, 76.1150 ns/op
|
|
||||||
WorkloadActual 76: 262144 op, 21239600.00 ns, 81.0226 ns/op
|
|
||||||
WorkloadActual 77: 262144 op, 20181400.00 ns, 76.9859 ns/op
|
|
||||||
WorkloadActual 78: 262144 op, 20440400.00 ns, 77.9739 ns/op
|
|
||||||
WorkloadActual 79: 262144 op, 22440900.00 ns, 85.6052 ns/op
|
|
||||||
WorkloadActual 80: 262144 op, 21102300.00 ns, 80.4989 ns/op
|
|
||||||
WorkloadActual 81: 262144 op, 21671100.00 ns, 82.6687 ns/op
|
|
||||||
WorkloadActual 82: 262144 op, 22933400.00 ns, 87.4840 ns/op
|
|
||||||
WorkloadActual 83: 262144 op, 21626200.00 ns, 82.4974 ns/op
|
|
||||||
WorkloadActual 84: 262144 op, 22042200.00 ns, 84.0843 ns/op
|
|
||||||
WorkloadActual 85: 262144 op, 22130600.00 ns, 84.4215 ns/op
|
|
||||||
WorkloadActual 86: 262144 op, 21725300.00 ns, 82.8754 ns/op
|
|
||||||
WorkloadActual 87: 262144 op, 20934200.00 ns, 79.8576 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 262144 op, 24011800.00 ns, 91.5977 ns/op
|
|
||||||
WorkloadResult 2: 262144 op, 23370900.00 ns, 89.1529 ns/op
|
|
||||||
WorkloadResult 3: 262144 op, 23321600.00 ns, 88.9648 ns/op
|
|
||||||
WorkloadResult 4: 262144 op, 21343400.00 ns, 81.4186 ns/op
|
|
||||||
WorkloadResult 5: 262144 op, 23063700.00 ns, 87.9810 ns/op
|
|
||||||
WorkloadResult 6: 262144 op, 20906500.00 ns, 79.7520 ns/op
|
|
||||||
WorkloadResult 7: 262144 op, 21050400.00 ns, 80.3009 ns/op
|
|
||||||
WorkloadResult 8: 262144 op, 21801200.00 ns, 83.1650 ns/op
|
|
||||||
WorkloadResult 9: 262144 op, 21219900.00 ns, 80.9475 ns/op
|
|
||||||
WorkloadResult 10: 262144 op, 23345900.00 ns, 89.0575 ns/op
|
|
||||||
WorkloadResult 11: 262144 op, 19405900.00 ns, 74.0276 ns/op
|
|
||||||
WorkloadResult 12: 262144 op, 19528200.00 ns, 74.4942 ns/op
|
|
||||||
WorkloadResult 13: 262144 op, 22318100.00 ns, 85.1368 ns/op
|
|
||||||
WorkloadResult 14: 262144 op, 22491800.00 ns, 85.7994 ns/op
|
|
||||||
WorkloadResult 15: 262144 op, 19781400.00 ns, 75.4601 ns/op
|
|
||||||
WorkloadResult 16: 262144 op, 20619500.00 ns, 78.6572 ns/op
|
|
||||||
WorkloadResult 17: 262144 op, 23867100.00 ns, 91.0458 ns/op
|
|
||||||
WorkloadResult 18: 262144 op, 20877200.00 ns, 79.6402 ns/op
|
|
||||||
WorkloadResult 19: 262144 op, 22184200.00 ns, 84.6260 ns/op
|
|
||||||
WorkloadResult 20: 262144 op, 22826000.00 ns, 87.0743 ns/op
|
|
||||||
WorkloadResult 21: 262144 op, 21267200.00 ns, 81.1279 ns/op
|
|
||||||
WorkloadResult 22: 262144 op, 22571300.00 ns, 86.1027 ns/op
|
|
||||||
WorkloadResult 23: 262144 op, 23137400.00 ns, 88.2622 ns/op
|
|
||||||
WorkloadResult 24: 262144 op, 23343100.00 ns, 89.0469 ns/op
|
|
||||||
WorkloadResult 25: 262144 op, 23253800.00 ns, 88.7062 ns/op
|
|
||||||
WorkloadResult 26: 262144 op, 19790300.00 ns, 75.4940 ns/op
|
|
||||||
WorkloadResult 27: 262144 op, 20864300.00 ns, 79.5910 ns/op
|
|
||||||
WorkloadResult 28: 262144 op, 21746900.00 ns, 82.9578 ns/op
|
|
||||||
WorkloadResult 29: 262144 op, 23244000.00 ns, 88.6688 ns/op
|
|
||||||
WorkloadResult 30: 262144 op, 21659100.00 ns, 82.6229 ns/op
|
|
||||||
WorkloadResult 31: 262144 op, 21297100.00 ns, 81.2420 ns/op
|
|
||||||
WorkloadResult 32: 262144 op, 22508700.00 ns, 85.8639 ns/op
|
|
||||||
WorkloadResult 33: 262144 op, 22749200.00 ns, 86.7813 ns/op
|
|
||||||
WorkloadResult 34: 262144 op, 21880700.00 ns, 83.4682 ns/op
|
|
||||||
WorkloadResult 35: 262144 op, 21588100.00 ns, 82.3521 ns/op
|
|
||||||
WorkloadResult 36: 262144 op, 22222100.00 ns, 84.7706 ns/op
|
|
||||||
WorkloadResult 37: 262144 op, 20352100.00 ns, 77.6371 ns/op
|
|
||||||
WorkloadResult 38: 262144 op, 19748500.00 ns, 75.3345 ns/op
|
|
||||||
WorkloadResult 39: 262144 op, 20983600.00 ns, 80.0461 ns/op
|
|
||||||
WorkloadResult 40: 262144 op, 21517900.00 ns, 82.0843 ns/op
|
|
||||||
WorkloadResult 41: 262144 op, 22015400.00 ns, 83.9821 ns/op
|
|
||||||
WorkloadResult 42: 262144 op, 21963600.00 ns, 83.7845 ns/op
|
|
||||||
WorkloadResult 43: 262144 op, 20773300.00 ns, 79.2439 ns/op
|
|
||||||
WorkloadResult 44: 262144 op, 21364600.00 ns, 81.4995 ns/op
|
|
||||||
WorkloadResult 45: 262144 op, 19467900.00 ns, 74.2641 ns/op
|
|
||||||
WorkloadResult 46: 262144 op, 19714700.00 ns, 75.2056 ns/op
|
|
||||||
WorkloadResult 47: 262144 op, 20115100.00 ns, 76.7330 ns/op
|
|
||||||
WorkloadResult 48: 262144 op, 20625100.00 ns, 78.6785 ns/op
|
|
||||||
WorkloadResult 49: 262144 op, 22247100.00 ns, 84.8660 ns/op
|
|
||||||
WorkloadResult 50: 262144 op, 23786500.00 ns, 90.7383 ns/op
|
|
||||||
WorkloadResult 51: 262144 op, 21150300.00 ns, 80.6820 ns/op
|
|
||||||
WorkloadResult 52: 262144 op, 23360300.00 ns, 89.1125 ns/op
|
|
||||||
WorkloadResult 53: 262144 op, 19543700.00 ns, 74.5533 ns/op
|
|
||||||
WorkloadResult 54: 262144 op, 21550400.00 ns, 82.2083 ns/op
|
|
||||||
WorkloadResult 55: 262144 op, 21785800.00 ns, 83.1062 ns/op
|
|
||||||
WorkloadResult 56: 262144 op, 21197700.00 ns, 80.8628 ns/op
|
|
||||||
WorkloadResult 57: 262144 op, 21736500.00 ns, 82.9182 ns/op
|
|
||||||
WorkloadResult 58: 262144 op, 22608700.00 ns, 86.2453 ns/op
|
|
||||||
WorkloadResult 59: 262144 op, 20705700.00 ns, 78.9860 ns/op
|
|
||||||
WorkloadResult 60: 262144 op, 21855200.00 ns, 83.3710 ns/op
|
|
||||||
WorkloadResult 61: 262144 op, 21007000.00 ns, 80.1353 ns/op
|
|
||||||
WorkloadResult 62: 262144 op, 21801800.00 ns, 83.1673 ns/op
|
|
||||||
WorkloadResult 63: 262144 op, 19716600.00 ns, 75.2129 ns/op
|
|
||||||
WorkloadResult 64: 262144 op, 21014200.00 ns, 80.1628 ns/op
|
|
||||||
WorkloadResult 65: 262144 op, 20608600.00 ns, 78.6156 ns/op
|
|
||||||
WorkloadResult 66: 262144 op, 22831100.00 ns, 87.0937 ns/op
|
|
||||||
WorkloadResult 67: 262144 op, 22645500.00 ns, 86.3857 ns/op
|
|
||||||
WorkloadResult 68: 262144 op, 22753400.00 ns, 86.7973 ns/op
|
|
||||||
WorkloadResult 69: 262144 op, 23598000.00 ns, 90.0192 ns/op
|
|
||||||
WorkloadResult 70: 262144 op, 20028300.00 ns, 76.4019 ns/op
|
|
||||||
WorkloadResult 71: 262144 op, 21380700.00 ns, 81.5609 ns/op
|
|
||||||
WorkloadResult 72: 262144 op, 20425300.00 ns, 77.9163 ns/op
|
|
||||||
WorkloadResult 73: 262144 op, 21381500.00 ns, 81.5639 ns/op
|
|
||||||
WorkloadResult 74: 262144 op, 22956900.00 ns, 87.5736 ns/op
|
|
||||||
WorkloadResult 75: 262144 op, 19953000.00 ns, 76.1147 ns/op
|
|
||||||
WorkloadResult 76: 262144 op, 21239500.00 ns, 81.0223 ns/op
|
|
||||||
WorkloadResult 77: 262144 op, 20181300.00 ns, 76.9855 ns/op
|
|
||||||
WorkloadResult 78: 262144 op, 20440300.00 ns, 77.9736 ns/op
|
|
||||||
WorkloadResult 79: 262144 op, 22440800.00 ns, 85.6049 ns/op
|
|
||||||
WorkloadResult 80: 262144 op, 21102200.00 ns, 80.4985 ns/op
|
|
||||||
WorkloadResult 81: 262144 op, 21671000.00 ns, 82.6683 ns/op
|
|
||||||
WorkloadResult 82: 262144 op, 22933300.00 ns, 87.4836 ns/op
|
|
||||||
WorkloadResult 83: 262144 op, 21626100.00 ns, 82.4970 ns/op
|
|
||||||
WorkloadResult 84: 262144 op, 22042100.00 ns, 84.0839 ns/op
|
|
||||||
WorkloadResult 85: 262144 op, 22130500.00 ns, 84.4212 ns/op
|
|
||||||
WorkloadResult 86: 262144 op, 21725200.00 ns, 82.8751 ns/op
|
|
||||||
WorkloadResult 87: 262144 op, 20934100.00 ns, 79.8573 ns/op
|
|
||||||
// GC: 0 0 0 0 262144
|
|
||||||
// Threading: 0 0 262144
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 82.485 ns, StdErr = 0.483 ns (0.59%), N = 87, StdDev = 4.508 ns
|
|
||||||
Min = 74.028 ns, Q1 = 79.616 ns, Median = 82.497 ns, Q3 = 85.983 ns, Max = 91.598 ns
|
|
||||||
IQR = 6.368 ns, LowerFence = 70.064 ns, UpperFence = 95.535 ns
|
|
||||||
ConfidenceInterval = [80.838 ns; 84.132 ns] (CI 99.9%), Margin = 1.647 ns (2.00% of Mean)
|
|
||||||
Skewness = 0, Kurtosis = 2.14, MValue = 2.09
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:11 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 138.243 ns, StdErr = 0.667 ns (0.48%), N = 15, StdDev = 2.583 ns
|
|
||||||
Min = 135.030 ns, Q1 = 135.985 ns, Median = 137.295 ns, Q3 = 140.513 ns, Max = 142.825 ns
|
|
||||||
IQR = 4.528 ns, LowerFence = 129.193 ns, UpperFence = 147.305 ns
|
|
||||||
ConfidenceInterval = [135.481 ns; 141.004 ns] (CI 99.9%), Margin = 2.761 ns (2.00% of Mean)
|
|
||||||
Skewness = 0.31, Kurtosis = 1.53, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[134.787 ns ; 138.432 ns) | @@@@@@@@
|
|
||||||
[138.432 ns ; 144.200 ns) | @@@@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 82.485 ns, StdErr = 0.483 ns (0.59%), N = 87, StdDev = 4.508 ns
|
|
||||||
Min = 74.028 ns, Q1 = 79.616 ns, Median = 82.497 ns, Q3 = 85.983 ns, Max = 91.598 ns
|
|
||||||
IQR = 6.368 ns, LowerFence = 70.064 ns, UpperFence = 95.535 ns
|
|
||||||
ConfidenceInterval = [80.838 ns; 84.132 ns] (CI 99.9%), Margin = 1.647 ns (2.00% of Mean)
|
|
||||||
Skewness = 0, Kurtosis = 2.14, MValue = 2.09
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[73.880 ns ; 77.872 ns) | @@@@@@@@@@@@@@
|
|
||||||
[77.872 ns ; 80.830 ns) | @@@@@@@@@@@@@@@@@
|
|
||||||
[80.830 ns ; 83.501 ns) | @@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[83.501 ns ; 86.632 ns) | @@@@@@@@@@@@@@
|
|
||||||
[86.632 ns ; 89.302 ns) | @@@@@@@@@@@@@@@
|
|
||||||
[89.302 ns ; 92.144 ns) | @@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |----------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 138.24 ns | 2.761 ns | 2.583 ns | 1.68 | 0.10 | - | NA |
|
|
||||||
| Libc | 82.48 ns | 1.647 ns | 4.508 ns | 1.00 | 0.08 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 35.397ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 19.406ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:04 (4.78 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:05 (5.56 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,234 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 1572864 op, 118200.00 ns, 0.0751 ns/op
|
|
||||||
|
|
||||||
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
|
|
||||||
---> System.OverflowException: Out of memory: Unable to allocate new 4096MB block or find suitable bucket for allocation.
|
|
||||||
at StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocator.Alloc(UIntPtr size)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.RunHlsf(HybridLayerSegregatedFitAllocator allocator, FreePolicy policy)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.Hlsf()
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionUnroll(Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.Jit(Engine engine, Int32 jitIndex, Int32 invokeCount, Int32 unrollFactor)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.CreateReadyToRun(EngineParameters engineParameters)
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.Run(BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
--- End of inner exception stack trace ---
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
|
|
||||||
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
|
|
||||||
at BenchmarkDotNet.Toolchains.InProcess.Emit.Implementation.RunnableProgram.Run(BenchmarkId benchmarkId, Assembly partitionAssembly, BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
Executable D:\platform-dev\StgSharp.Benchmark\bin\x64\PerformanceDebug\net8.0\StgSharp.Benchmark-Job-VLPMSV-1Emitted.dll not found
|
|
||||||
ExitCode != 0 and no results reported
|
|
||||||
No Workload Results were obtained from the run.
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:12 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 1572864 op, 202000.00 ns, 0.1284 ns/op
|
|
||||||
WorkloadJitting 1: 1572864 op, 410939600.00 ns, 261.2684 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 1572864 op, 1100.00 ns, 0.0007 ns/op
|
|
||||||
OverheadWarmup 2: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadWarmup 3: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadWarmup 4: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadWarmup 5: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadWarmup 6: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 1572864 op, 900.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 2: 1572864 op, 800.00 ns, 0.0005 ns/op
|
|
||||||
OverheadActual 3: 1572864 op, 700.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 5: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 6: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 7: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 8: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 9: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 10: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 11: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 12: 1572864 op, 100.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 13: 1572864 op, 500.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 14: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 15: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 16: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
OverheadActual 17: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 18: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 19: 1572864 op, 300.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 20: 1572864 op, 200.00 ns, 0.0001 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 1572864 op, 165146900.00 ns, 104.9976 ns/op
|
|
||||||
WorkloadWarmup 2: 1572864 op, 150282900.00 ns, 95.5473 ns/op
|
|
||||||
WorkloadWarmup 3: 1572864 op, 159412700.00 ns, 101.3519 ns/op
|
|
||||||
WorkloadWarmup 4: 1572864 op, 136880500.00 ns, 87.0263 ns/op
|
|
||||||
WorkloadWarmup 5: 1572864 op, 132545200.00 ns, 84.2700 ns/op
|
|
||||||
WorkloadWarmup 6: 1572864 op, 131547100.00 ns, 83.6354 ns/op
|
|
||||||
WorkloadWarmup 7: 1572864 op, 133431500.00 ns, 84.8335 ns/op
|
|
||||||
WorkloadWarmup 8: 1572864 op, 132657800.00 ns, 84.3416 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 1572864 op, 141275300.00 ns, 89.8204 ns/op
|
|
||||||
WorkloadActual 2: 1572864 op, 156756800.00 ns, 99.6633 ns/op
|
|
||||||
WorkloadActual 3: 1572864 op, 131499900.00 ns, 83.6054 ns/op
|
|
||||||
WorkloadActual 4: 1572864 op, 129434200.00 ns, 82.2920 ns/op
|
|
||||||
WorkloadActual 5: 1572864 op, 129770500.00 ns, 82.5059 ns/op
|
|
||||||
WorkloadActual 6: 1572864 op, 137358800.00 ns, 87.3304 ns/op
|
|
||||||
WorkloadActual 7: 1572864 op, 122767700.00 ns, 78.0536 ns/op
|
|
||||||
WorkloadActual 8: 1572864 op, 127150500.00 ns, 80.8401 ns/op
|
|
||||||
WorkloadActual 9: 1572864 op, 127897700.00 ns, 81.3152 ns/op
|
|
||||||
WorkloadActual 10: 1572864 op, 134241500.00 ns, 85.3484 ns/op
|
|
||||||
WorkloadActual 11: 1572864 op, 131170900.00 ns, 83.3962 ns/op
|
|
||||||
WorkloadActual 12: 1572864 op, 128696500.00 ns, 81.8230 ns/op
|
|
||||||
WorkloadActual 13: 1572864 op, 131658200.00 ns, 83.7060 ns/op
|
|
||||||
WorkloadActual 14: 1572864 op, 130496400.00 ns, 82.9674 ns/op
|
|
||||||
WorkloadActual 15: 1572864 op, 132939800.00 ns, 84.5208 ns/op
|
|
||||||
WorkloadActual 16: 1572864 op, 129162800.00 ns, 82.1195 ns/op
|
|
||||||
WorkloadActual 17: 1572864 op, 127534200.00 ns, 81.0841 ns/op
|
|
||||||
WorkloadActual 18: 1572864 op, 127787700.00 ns, 81.2452 ns/op
|
|
||||||
WorkloadActual 19: 1572864 op, 126947500.00 ns, 80.7110 ns/op
|
|
||||||
WorkloadActual 20: 1572864 op, 125193400.00 ns, 79.5958 ns/op
|
|
||||||
WorkloadActual 21: 1572864 op, 131908100.00 ns, 83.8649 ns/op
|
|
||||||
WorkloadActual 22: 1572864 op, 129372600.00 ns, 82.2529 ns/op
|
|
||||||
WorkloadActual 23: 1572864 op, 129443600.00 ns, 82.2980 ns/op
|
|
||||||
WorkloadActual 24: 1572864 op, 128597600.00 ns, 81.7602 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 1572864 op, 131499600.00 ns, 83.6052 ns/op
|
|
||||||
WorkloadResult 2: 1572864 op, 129433900.00 ns, 82.2919 ns/op
|
|
||||||
WorkloadResult 3: 1572864 op, 129770200.00 ns, 82.5057 ns/op
|
|
||||||
WorkloadResult 4: 1572864 op, 137358500.00 ns, 87.3302 ns/op
|
|
||||||
WorkloadResult 5: 1572864 op, 122767400.00 ns, 78.0534 ns/op
|
|
||||||
WorkloadResult 6: 1572864 op, 127150200.00 ns, 80.8399 ns/op
|
|
||||||
WorkloadResult 7: 1572864 op, 127897400.00 ns, 81.3150 ns/op
|
|
||||||
WorkloadResult 8: 1572864 op, 134241200.00 ns, 85.3483 ns/op
|
|
||||||
WorkloadResult 9: 1572864 op, 131170600.00 ns, 83.3960 ns/op
|
|
||||||
WorkloadResult 10: 1572864 op, 128696200.00 ns, 81.8228 ns/op
|
|
||||||
WorkloadResult 11: 1572864 op, 131657900.00 ns, 83.7058 ns/op
|
|
||||||
WorkloadResult 12: 1572864 op, 130496100.00 ns, 82.9672 ns/op
|
|
||||||
WorkloadResult 13: 1572864 op, 132939500.00 ns, 84.5207 ns/op
|
|
||||||
WorkloadResult 14: 1572864 op, 129162500.00 ns, 82.1193 ns/op
|
|
||||||
WorkloadResult 15: 1572864 op, 127533900.00 ns, 81.0839 ns/op
|
|
||||||
WorkloadResult 16: 1572864 op, 127787400.00 ns, 81.2450 ns/op
|
|
||||||
WorkloadResult 17: 1572864 op, 126947200.00 ns, 80.7109 ns/op
|
|
||||||
WorkloadResult 18: 1572864 op, 125193100.00 ns, 79.5956 ns/op
|
|
||||||
WorkloadResult 19: 1572864 op, 131907800.00 ns, 83.8647 ns/op
|
|
||||||
WorkloadResult 20: 1572864 op, 129372300.00 ns, 82.2527 ns/op
|
|
||||||
WorkloadResult 21: 1572864 op, 129443300.00 ns, 82.2978 ns/op
|
|
||||||
WorkloadResult 22: 1572864 op, 128597300.00 ns, 81.7600 ns/op
|
|
||||||
// GC: 0 0 0 0 1572864
|
|
||||||
// Threading: 0 0 1572864
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 82.392 ns, StdErr = 0.419 ns (0.51%), N = 22, StdDev = 1.967 ns
|
|
||||||
Min = 78.053 ns, Q1 = 81.263 ns, Median = 82.272 ns, Q3 = 83.553 ns, Max = 87.330 ns
|
|
||||||
IQR = 2.290 ns, LowerFence = 77.827 ns, UpperFence = 86.988 ns
|
|
||||||
ConfidenceInterval = [80.790 ns; 83.994 ns] (CI 99.9%), Margin = 1.602 ns (1.94% of Mean)
|
|
||||||
Skewness = 0.28, Kurtosis = 3.45, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:12 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
There are not any results runs
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 82.392 ns, StdErr = 0.419 ns (0.51%), N = 22, StdDev = 1.967 ns
|
|
||||||
Min = 78.053 ns, Q1 = 81.263 ns, Median = 82.272 ns, Q3 = 83.553 ns, Max = 87.330 ns
|
|
||||||
IQR = 2.290 ns, LowerFence = 77.827 ns, UpperFence = 86.988 ns
|
|
||||||
ConfidenceInterval = [80.790 ns; 83.994 ns] (CI 99.9%), Margin = 1.602 ns (1.94% of Mean)
|
|
||||||
Skewness = 0.28, Kurtosis = 3.45, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[77.903 ns ; 79.746 ns) | @@
|
|
||||||
[79.746 ns ; 82.530 ns) | @@@@@@@@@@@@
|
|
||||||
[82.530 ns ; 84.665 ns) | @@@@@@
|
|
||||||
[84.665 ns ; 88.252 ns) | @@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |---------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | NA | NA | NA | ? | ? | NA | ? |
|
|
||||||
| Libc | 82.39 ns | 1.602 ns | 1.967 ns | 1.00 | 0.03 | - | NA |
|
|
||||||
|
|
||||||
Benchmarks with issues:
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
Environment
|
|
||||||
Summary -> Detected error exit code from one of the benchmarks. It might be caused by following antivirus software:
|
|
||||||
- Windows Defender (windowsdefender://)
|
|
||||||
Use InProcessEmitToolchain or InProcessNoEmitToolchain to avoid new process creation.
|
|
||||||
|
|
||||||
BaselineCustomAnalyzer
|
|
||||||
Summary -> A question mark '?' symbol indicates that it was not possible to compute the (Ratio, RatioSD, Alloc Ratio) column(s) because the baseline or benchmark could not be found, or the baseline value is too close to zero.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 2 outliers were removed (89.82 ns, 99.66 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:05 (5.98 sec), executed benchmarks: 1
|
|
||||||
|
|
||||||
Global total time: 00:00:06 (6.76 sec), executed benchmarks: 1
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 786432 op, 114300.00 ns, 0.1453 ns/op
|
|
||||||
|
|
||||||
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
|
|
||||||
---> System.OverflowException: Out of memory: Unable to allocate new 4096MB block or find suitable bucket for allocation.
|
|
||||||
at StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocator.Alloc(UIntPtr size)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.RunHlsf(HybridLayerSegregatedFitAllocator allocator, FreePolicy policy)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.Hlsf()
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionUnroll(Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.Jit(Engine engine, Int32 jitIndex, Int32 invokeCount, Int32 unrollFactor)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.CreateReadyToRun(EngineParameters engineParameters)
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.Run(BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
--- End of inner exception stack trace ---
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
|
|
||||||
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
|
|
||||||
at BenchmarkDotNet.Toolchains.InProcess.Emit.Implementation.RunnableProgram.Run(BenchmarkId benchmarkId, Assembly partitionAssembly, BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
Executable D:\platform-dev\StgSharp.Benchmark\bin\x64\PerformanceDebug\net8.0\StgSharp.Benchmark-Job-VLPMSV-1Emitted.dll not found
|
|
||||||
ExitCode != 0 and no results reported
|
|
||||||
No Workload Results were obtained from the run.
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:13 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 786432 op, 272500.00 ns, 0.3465 ns/op
|
|
||||||
WorkloadJitting 1: 786432 op, 283546800.00 ns, 360.5484 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 786432 op, 800.00 ns, 0.0010 ns/op
|
|
||||||
OverheadWarmup 2: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadWarmup 3: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadWarmup 4: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadWarmup 5: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 3: 786432 op, 1100.00 ns, 0.0014 ns/op
|
|
||||||
OverheadActual 4: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 6: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 786432 op, 500.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 9: 786432 op, 500.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 10: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 11: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 14: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 16: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
OverheadActual 17: 786432 op, 800.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 18: 786432 op, 400.00 ns, 0.0005 ns/op
|
|
||||||
OverheadActual 19: 786432 op, 300.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 786432 op, 200.00 ns, 0.0003 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 786432 op, 177081300.00 ns, 225.1705 ns/op
|
|
||||||
WorkloadWarmup 2: 786432 op, 83441200.00 ns, 106.1010 ns/op
|
|
||||||
WorkloadWarmup 3: 786432 op, 71793700.00 ns, 91.2904 ns/op
|
|
||||||
WorkloadWarmup 4: 786432 op, 73979600.00 ns, 94.0699 ns/op
|
|
||||||
WorkloadWarmup 5: 786432 op, 71654600.00 ns, 91.1135 ns/op
|
|
||||||
WorkloadWarmup 6: 786432 op, 70864800.00 ns, 90.1093 ns/op
|
|
||||||
WorkloadWarmup 7: 786432 op, 72973000.00 ns, 92.7900 ns/op
|
|
||||||
WorkloadWarmup 8: 786432 op, 74296000.00 ns, 94.4722 ns/op
|
|
||||||
WorkloadWarmup 9: 786432 op, 77626300.00 ns, 98.7069 ns/op
|
|
||||||
WorkloadWarmup 10: 786432 op, 74617600.00 ns, 94.8812 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 786432 op, 71797800.00 ns, 91.2956 ns/op
|
|
||||||
WorkloadActual 2: 786432 op, 76039200.00 ns, 96.6888 ns/op
|
|
||||||
WorkloadActual 3: 786432 op, 72729800.00 ns, 92.4807 ns/op
|
|
||||||
WorkloadActual 4: 786432 op, 68925300.00 ns, 87.6431 ns/op
|
|
||||||
WorkloadActual 5: 786432 op, 72758900.00 ns, 92.5177 ns/op
|
|
||||||
WorkloadActual 6: 786432 op, 69658300.00 ns, 88.5751 ns/op
|
|
||||||
WorkloadActual 7: 786432 op, 81699400.00 ns, 103.8862 ns/op
|
|
||||||
WorkloadActual 8: 786432 op, 75090200.00 ns, 95.4821 ns/op
|
|
||||||
WorkloadActual 9: 786432 op, 70600600.00 ns, 89.7733 ns/op
|
|
||||||
WorkloadActual 10: 786432 op, 65057200.00 ns, 82.7245 ns/op
|
|
||||||
WorkloadActual 11: 786432 op, 66548400.00 ns, 84.6207 ns/op
|
|
||||||
WorkloadActual 12: 786432 op, 61023500.00 ns, 77.5954 ns/op
|
|
||||||
WorkloadActual 13: 786432 op, 65876400.00 ns, 83.7662 ns/op
|
|
||||||
WorkloadActual 14: 786432 op, 62012700.00 ns, 78.8532 ns/op
|
|
||||||
WorkloadActual 15: 786432 op, 64825000.00 ns, 82.4293 ns/op
|
|
||||||
WorkloadActual 16: 786432 op, 65207800.00 ns, 82.9160 ns/op
|
|
||||||
WorkloadActual 17: 786432 op, 62358300.00 ns, 79.2927 ns/op
|
|
||||||
WorkloadActual 18: 786432 op, 65015400.00 ns, 82.6714 ns/op
|
|
||||||
WorkloadActual 19: 786432 op, 65443100.00 ns, 83.2152 ns/op
|
|
||||||
WorkloadActual 20: 786432 op, 61746200.00 ns, 78.5144 ns/op
|
|
||||||
WorkloadActual 21: 786432 op, 67061100.00 ns, 85.2726 ns/op
|
|
||||||
WorkloadActual 22: 786432 op, 62854400.00 ns, 79.9235 ns/op
|
|
||||||
WorkloadActual 23: 786432 op, 67830700.00 ns, 86.2512 ns/op
|
|
||||||
WorkloadActual 24: 786432 op, 63916100.00 ns, 81.2735 ns/op
|
|
||||||
WorkloadActual 25: 786432 op, 68091500.00 ns, 86.5828 ns/op
|
|
||||||
WorkloadActual 26: 786432 op, 68909000.00 ns, 87.6223 ns/op
|
|
||||||
WorkloadActual 27: 786432 op, 64960900.00 ns, 82.6021 ns/op
|
|
||||||
WorkloadActual 28: 786432 op, 65687200.00 ns, 83.5256 ns/op
|
|
||||||
WorkloadActual 29: 786432 op, 66187900.00 ns, 84.1623 ns/op
|
|
||||||
WorkloadActual 30: 786432 op, 68711500.00 ns, 87.3712 ns/op
|
|
||||||
WorkloadActual 31: 786432 op, 62861700.00 ns, 79.9328 ns/op
|
|
||||||
WorkloadActual 32: 786432 op, 67319200.00 ns, 85.6008 ns/op
|
|
||||||
WorkloadActual 33: 786432 op, 66537600.00 ns, 84.6069 ns/op
|
|
||||||
WorkloadActual 34: 786432 op, 62686800.00 ns, 79.7104 ns/op
|
|
||||||
WorkloadActual 35: 786432 op, 67844800.00 ns, 86.2691 ns/op
|
|
||||||
WorkloadActual 36: 786432 op, 68469500.00 ns, 87.0635 ns/op
|
|
||||||
WorkloadActual 37: 786432 op, 62314100.00 ns, 79.2365 ns/op
|
|
||||||
WorkloadActual 38: 786432 op, 69435500.00 ns, 88.2918 ns/op
|
|
||||||
WorkloadActual 39: 786432 op, 67670800.00 ns, 86.0479 ns/op
|
|
||||||
WorkloadActual 40: 786432 op, 70529700.00 ns, 89.6832 ns/op
|
|
||||||
WorkloadActual 41: 786432 op, 69438800.00 ns, 88.2960 ns/op
|
|
||||||
WorkloadActual 42: 786432 op, 62218500.00 ns, 79.1149 ns/op
|
|
||||||
WorkloadActual 43: 786432 op, 63930300.00 ns, 81.2916 ns/op
|
|
||||||
WorkloadActual 44: 786432 op, 62494300.00 ns, 79.4656 ns/op
|
|
||||||
WorkloadActual 45: 786432 op, 62698000.00 ns, 79.7246 ns/op
|
|
||||||
WorkloadActual 46: 786432 op, 58191400.00 ns, 73.9942 ns/op
|
|
||||||
WorkloadActual 47: 786432 op, 62828900.00 ns, 79.8911 ns/op
|
|
||||||
WorkloadActual 48: 786432 op, 65412800.00 ns, 83.1767 ns/op
|
|
||||||
WorkloadActual 49: 786432 op, 61486700.00 ns, 78.1844 ns/op
|
|
||||||
WorkloadActual 50: 786432 op, 62803100.00 ns, 79.8583 ns/op
|
|
||||||
WorkloadActual 51: 786432 op, 62769200.00 ns, 79.8152 ns/op
|
|
||||||
WorkloadActual 52: 786432 op, 62944300.00 ns, 80.0378 ns/op
|
|
||||||
WorkloadActual 53: 786432 op, 62638600.00 ns, 79.6491 ns/op
|
|
||||||
WorkloadActual 54: 786432 op, 63655100.00 ns, 80.9416 ns/op
|
|
||||||
WorkloadActual 55: 786432 op, 65557900.00 ns, 83.3612 ns/op
|
|
||||||
WorkloadActual 56: 786432 op, 62510300.00 ns, 79.4860 ns/op
|
|
||||||
WorkloadActual 57: 786432 op, 64525400.00 ns, 82.0483 ns/op
|
|
||||||
WorkloadActual 58: 786432 op, 65281400.00 ns, 83.0096 ns/op
|
|
||||||
WorkloadActual 59: 786432 op, 66175500.00 ns, 84.1465 ns/op
|
|
||||||
WorkloadActual 60: 786432 op, 62543300.00 ns, 79.5279 ns/op
|
|
||||||
WorkloadActual 61: 786432 op, 59456000.00 ns, 75.6022 ns/op
|
|
||||||
WorkloadActual 62: 786432 op, 65781700.00 ns, 83.6458 ns/op
|
|
||||||
WorkloadActual 63: 786432 op, 61663900.00 ns, 78.4097 ns/op
|
|
||||||
WorkloadActual 64: 786432 op, 60669900.00 ns, 77.1458 ns/op
|
|
||||||
WorkloadActual 65: 786432 op, 60812900.00 ns, 77.3276 ns/op
|
|
||||||
WorkloadActual 66: 786432 op, 66279900.00 ns, 84.2793 ns/op
|
|
||||||
WorkloadActual 67: 786432 op, 61144400.00 ns, 77.7491 ns/op
|
|
||||||
WorkloadActual 68: 786432 op, 61055600.00 ns, 77.6362 ns/op
|
|
||||||
WorkloadActual 69: 786432 op, 62388700.00 ns, 79.3313 ns/op
|
|
||||||
WorkloadActual 70: 786432 op, 62531200.00 ns, 79.5125 ns/op
|
|
||||||
WorkloadActual 71: 786432 op, 64258300.00 ns, 81.7087 ns/op
|
|
||||||
WorkloadActual 72: 786432 op, 65326100.00 ns, 83.0664 ns/op
|
|
||||||
WorkloadActual 73: 786432 op, 63049300.00 ns, 80.1713 ns/op
|
|
||||||
WorkloadActual 74: 786432 op, 63431600.00 ns, 80.6575 ns/op
|
|
||||||
WorkloadActual 75: 786432 op, 64226500.00 ns, 81.6682 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 786432 op, 71797500.00 ns, 91.2952 ns/op
|
|
||||||
WorkloadResult 2: 786432 op, 72729500.00 ns, 92.4803 ns/op
|
|
||||||
WorkloadResult 3: 786432 op, 68925000.00 ns, 87.6427 ns/op
|
|
||||||
WorkloadResult 4: 786432 op, 72758600.00 ns, 92.5173 ns/op
|
|
||||||
WorkloadResult 5: 786432 op, 69658000.00 ns, 88.5747 ns/op
|
|
||||||
WorkloadResult 6: 786432 op, 70600300.00 ns, 89.7729 ns/op
|
|
||||||
WorkloadResult 7: 786432 op, 65056900.00 ns, 82.7241 ns/op
|
|
||||||
WorkloadResult 8: 786432 op, 66548100.00 ns, 84.6203 ns/op
|
|
||||||
WorkloadResult 9: 786432 op, 61023200.00 ns, 77.5950 ns/op
|
|
||||||
WorkloadResult 10: 786432 op, 65876100.00 ns, 83.7658 ns/op
|
|
||||||
WorkloadResult 11: 786432 op, 62012400.00 ns, 78.8528 ns/op
|
|
||||||
WorkloadResult 12: 786432 op, 64824700.00 ns, 82.4289 ns/op
|
|
||||||
WorkloadResult 13: 786432 op, 65207500.00 ns, 82.9156 ns/op
|
|
||||||
WorkloadResult 14: 786432 op, 62358000.00 ns, 79.2923 ns/op
|
|
||||||
WorkloadResult 15: 786432 op, 65015100.00 ns, 82.6710 ns/op
|
|
||||||
WorkloadResult 16: 786432 op, 65442800.00 ns, 83.2148 ns/op
|
|
||||||
WorkloadResult 17: 786432 op, 61745900.00 ns, 78.5140 ns/op
|
|
||||||
WorkloadResult 18: 786432 op, 67060800.00 ns, 85.2722 ns/op
|
|
||||||
WorkloadResult 19: 786432 op, 62854100.00 ns, 79.9231 ns/op
|
|
||||||
WorkloadResult 20: 786432 op, 67830400.00 ns, 86.2508 ns/op
|
|
||||||
WorkloadResult 21: 786432 op, 63915800.00 ns, 81.2731 ns/op
|
|
||||||
WorkloadResult 22: 786432 op, 68091
|
|
||||||
@@ -1,375 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 127300.00 ns, 0.2428 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 344623100.00 ns, 657.3164 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1500.00 ns, 0.0029 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 99750000.00 ns, 190.2580 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 117031100.00 ns, 223.2191 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 96056600.00 ns, 183.2134 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 86407000.00 ns, 164.8083 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 104009800.00 ns, 198.3829 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 82499500.00 ns, 157.3553 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 83109500.00 ns, 158.5188 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 82020800.00 ns, 156.4423 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 79255800.00 ns, 151.1684 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 75998400.00 ns, 144.9554 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 77819900.00 ns, 148.4297 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 74558600.00 ns, 142.2092 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 74009300.00 ns, 141.1615 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 75033700.00 ns, 143.1154 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 77884900.00 ns, 148.5537 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 82038200.00 ns, 156.4754 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 76501400.00 ns, 145.9148 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 75644200.00 ns, 144.2799 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 76225600.00 ns, 145.3888 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 77151600.00 ns, 147.1550 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 72707800.00 ns, 138.6791 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 74118700.00 ns, 141.3702 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 71484700.00 ns, 136.3462 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 73459300.00 ns, 140.1125 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 73239800.00 ns, 139.6938 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 78846800.00 ns, 150.3883 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 72395500.00 ns, 138.0835 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 73737500.00 ns, 140.6431 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 73339900.00 ns, 139.8848 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 79202500.00 ns, 151.0668 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 75850000.00 ns, 144.6724 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 74549800.00 ns, 142.1925 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 73733500.00 ns, 140.6355 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 75948900.00 ns, 144.8610 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 77917800.00 ns, 148.6164 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 72781000.00 ns, 138.8187 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 74696100.00 ns, 142.4715 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 74712500.00 ns, 142.5028 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 73382200.00 ns, 139.9654 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 73410700.00 ns, 140.0198 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 74397300.00 ns, 141.9016 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 72721700.00 ns, 138.7056 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 71562800.00 ns, 136.4952 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 74578600.00 ns, 142.2474 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 72040800.00 ns, 137.4069 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 79255500.00 ns, 151.1679 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 75998100.00 ns, 144.9549 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 77819600.00 ns, 148.4291 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 74558300.00 ns, 142.2087 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 74009000.00 ns, 141.1610 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 75033400.00 ns, 143.1149 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 77884600.00 ns, 148.5531 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 76501100.00 ns, 145.9143 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 75643900.00 ns, 144.2793 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 76225300.00 ns, 145.3882 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 77151300.00 ns, 147.1544 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 72707500.00 ns, 138.6786 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 74118400.00 ns, 141.3696 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 71484400.00 ns, 136.3457 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 73459000.00 ns, 140.1119 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 73239500.00 ns, 139.6933 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 78846500.00 ns, 150.3878 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 72395200.00 ns, 138.0829 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 73737200.00 ns, 140.6425 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 73339600.00 ns, 139.8842 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 79202200.00 ns, 151.0662 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 75849700.00 ns, 144.6718 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 74549500.00 ns, 142.1919 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 73733200.00 ns, 140.6349 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 75948600.00 ns, 144.8605 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 77917500.00 ns, 148.6158 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 72780700.00 ns, 138.8182 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 74695800.00 ns, 142.4709 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 74712200.00 ns, 142.5022 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 73381900.00 ns, 139.9649 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 73410400.00 ns, 140.0192 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 74397000.00 ns, 141.9010 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 72721400.00 ns, 138.7051 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 71562500.00 ns, 136.4946 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 74578300.00 ns, 142.2468 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 72040500.00 ns, 137.4063 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 142.780 ns, StdErr = 0.681 ns (0.48%), N = 36, StdDev = 4.085 ns
|
|
||||||
Min = 136.346 ns, Q1 = 139.945 ns, Median = 142.200 ns, Q3 = 145.063 ns, Max = 151.168 ns
|
|
||||||
IQR = 5.119 ns, LowerFence = 132.267 ns, UpperFence = 152.741 ns
|
|
||||||
ConfidenceInterval = [140.335 ns; 145.226 ns] (CI 99.9%), Margin = 2.445 ns (1.71% of Mean)
|
|
||||||
Skewness = 0.5, Kurtosis = 2.26, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:15 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 96700.00 ns, 0.1844 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 188500900.00 ns, 359.5369 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1500.00 ns, 0.0029 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 99213700.00 ns, 189.2351 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 57878200.00 ns, 110.3939 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 46811300.00 ns, 89.2855 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 48562400.00 ns, 92.6254 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 42878600.00 ns, 81.7844 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 45507100.00 ns, 86.7979 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 42794900.00 ns, 81.6248 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 44760800.00 ns, 85.3745 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 44827600.00 ns, 85.5019 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 41012300.00 ns, 78.2248 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 41438200.00 ns, 79.0371 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 42349000.00 ns, 80.7743 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 43418500.00 ns, 82.8142 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 39325200.00 ns, 75.0069 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 45356400.00 ns, 86.5105 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 42998200.00 ns, 82.0126 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 42543700.00 ns, 81.1457 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 42022200.00 ns, 80.1510 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 41589700.00 ns, 79.3261 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 41791400.00 ns, 79.7108 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 42872000.00 ns, 81.7719 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 43705800.00 ns, 83.3622 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 41635500.00 ns, 79.4134 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 43287700.00 ns, 82.5647 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 42481200.00 ns, 81.0265 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 40153300.00 ns, 76.5863 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 44237400.00 ns, 84.3761 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 43768200.00 ns, 83.4812 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 39950200.00 ns, 76.1990 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 44188300.00 ns, 84.2825 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 44841800.00 ns, 85.5289 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 45335800.00 ns, 86.4712 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 44310900.00 ns, 84.5163 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 43363100.00 ns, 82.7085 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 42334500.00 ns, 80.7467 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 44788100.00 ns, 85.4265 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 45293100.00 ns, 86.3897 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 43721600.00 ns, 83.3923 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 42628000.00 ns, 81.3065 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 41615200.00 ns, 79.3747 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 41328000.00 ns, 78.8269 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 42970200.00 ns, 81.9592 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 42667100.00 ns, 81.3810 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 42134300.00 ns, 80.3648 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 39485300.00 ns, 75.3122 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 42620100.00 ns, 81.2914 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 43928200.00 ns, 83.7864 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 43979100.00 ns, 83.8835 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 43079900.00 ns, 82.1684 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 44760600.00 ns, 85.3741 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 44827400.00 ns, 85.5015 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 41012100.00 ns, 78.2244 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 41438000.00 ns, 79.0367 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 42348800.00 ns, 80.7739 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 43418300.00 ns, 82.8138 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 39325000.00 ns, 75.0065 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 45356200.00 ns, 86.5101 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 42998000.00 ns, 82.0122 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 42543500.00 ns, 81.1453 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 42022000.00 ns, 80.1506 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 41589500.00 ns, 79.3257 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 41791200.00 ns, 79.7104 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 42871800.00 ns, 81.7715 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 43705600.00 ns, 83.3618 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 41635300.00 ns, 79.4130 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 43287500.00 ns, 82.5644 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 42481000.00 ns, 81.0261 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 40153100.00 ns, 76.5860 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 44237200.00 ns, 84.3758 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 43768000.00 ns, 83.4808 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 39950000.00 ns, 76.1986 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 44188100.00 ns, 84.2821 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 44841600.00 ns, 85.5286 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 45335600.00 ns, 86.4708 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 44310700.00 ns, 84.5160 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 43362900.00 ns, 82.7082 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 42334300.00 ns, 80.7463 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 44787900.00 ns, 85.4261 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 45292900.00 ns, 86.3894 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 43721400.00 ns, 83.3920 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 42627800.00 ns, 81.3061 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 41615000.00 ns, 79.3743 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 41327800.00 ns, 78.8265 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 42970000.00 ns, 81.9588 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 42666900.00 ns, 81.3807 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 42134100.00 ns, 80.3644 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 39485100.00 ns, 75.3119 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 42619900.00 ns, 81.2910 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 43928000.00 ns, 83.7860 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 43978900.00 ns, 83.8831 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 43079700.00 ns, 82.1680 ns/op
|
|
||||||
// GC: 0 0 0 624 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 81.749 ns, StdErr = 0.460 ns (0.56%), N = 42, StdDev = 2.980 ns
|
|
||||||
Min = 75.006 ns, Q1 = 79.820 ns, Median = 81.865 ns, Q3 = 83.859 ns, Max = 86.510 ns
|
|
||||||
IQR = 4.038 ns, LowerFence = 73.763 ns, UpperFence = 89.916 ns
|
|
||||||
ConfidenceInterval = [80.119 ns; 83.379 ns] (CI 99.9%), Margin = 1.630 ns (1.99% of Mean)
|
|
||||||
Skewness = -0.38, Kurtosis = 2.5, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 14:15 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 142.780 ns, StdErr = 0.681 ns (0.48%), N = 36, StdDev = 4.085 ns
|
|
||||||
Min = 136.346 ns, Q1 = 139.945 ns, Median = 142.200 ns, Q3 = 145.063 ns, Max = 151.168 ns
|
|
||||||
IQR = 5.119 ns, LowerFence = 132.267 ns, UpperFence = 152.741 ns
|
|
||||||
ConfidenceInterval = [140.335 ns; 145.226 ns] (CI 99.9%), Margin = 2.445 ns (1.71% of Mean)
|
|
||||||
Skewness = 0.5, Kurtosis = 2.26, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[135.958 ns ; 139.474 ns) | @@@@@@@
|
|
||||||
[139.474 ns ; 142.722 ns) | @@@@@@@@@@@@@@@
|
|
||||||
[142.722 ns ; 146.138 ns) | @@@@@@@
|
|
||||||
[146.138 ns ; 151.422 ns) | @@@@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 81.749 ns, StdErr = 0.460 ns (0.56%), N = 42, StdDev = 2.980 ns
|
|
||||||
Min = 75.006 ns, Q1 = 79.820 ns, Median = 81.865 ns, Q3 = 83.859 ns, Max = 86.510 ns
|
|
||||||
IQR = 4.038 ns, LowerFence = 73.763 ns, UpperFence = 89.916 ns
|
|
||||||
ConfidenceInterval = [80.119 ns; 83.379 ns] (CI 99.9%), Margin = 1.630 ns (1.99% of Mean)
|
|
||||||
Skewness = -0.38, Kurtosis = 2.5, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[74.671 ns ; 78.169 ns) | @@@@
|
|
||||||
[78.169 ns ; 80.655 ns) | @@@@@@@@@
|
|
||||||
[80.655 ns ; 83.320 ns) | @@@@@@@@@@@@@@
|
|
||||||
[83.320 ns ; 85.571 ns) | @@@@@@@@@@@@
|
|
||||||
[85.571 ns ; 87.636 ns) | @@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |----------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 142.78 ns | 2.445 ns | 4.085 ns | 1.75 | 0.08 | - | NA |
|
|
||||||
| Libc | 81.75 ns | 1.630 ns | 2.980 ns | 1.00 | 0.05 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 71.485ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 39.325ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 3 outliers were removed (156.44 ns..158.52 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:08 (8.71 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:09 (9.5 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,281 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 118100.00 ns, 0.2253 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 362247300.00 ns, 690.9319 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1800.00 ns, 0.0034 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 800.00 ns, 0.0015 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 700.00 ns, 0.0013 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadWarmup 7: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 8: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 700.00 ns, 0.0013 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 800.00 ns, 0.0015 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 261282000.00 ns, 498.3559 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 222119300.00 ns, 423.6589 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 224656200.00 ns, 428.4977 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 219228000.00 ns, 418.1442 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 230952400.00 ns, 440.5067 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 209467600.00 ns, 399.5277 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 230079600.00 ns, 438.8420 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 219833700.00 ns, 419.2995 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 191251500.00 ns, 364.7833 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 190933200.00 ns, 364.1762 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 187688700.00 ns, 357.9878 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 195972400.00 ns, 373.7877 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 187445100.00 ns, 357.5232 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 190997400.00 ns, 364.2986 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 191719100.00 ns, 365.6752 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 192303300.00 ns, 366.7894 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 186038000.00 ns, 354.8393 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 184847100.00 ns, 352.5679 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 192115100.00 ns, 366.4305 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 190557100.00 ns, 363.4588 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 189907400.00 ns, 362.2196 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 191251100.00 ns, 364.7825 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 190932800.00 ns, 364.1754 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 187688300.00 ns, 357.9870 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 195972000.00 ns, 373.7869 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 187444700.00 ns, 357.5224 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 190997000.00 ns, 364.2979 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 191718700.00 ns, 365.6744 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 192302900.00 ns, 366.7887 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 186037600.00 ns, 354.8386 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 184846700.00 ns, 352.5671 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 192114700.00 ns, 366.4297 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 190556700.00 ns, 363.4581 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 189907000.00 ns, 362.2189 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 362.656 ns, StdErr = 1.572 ns (0.43%), N = 13, StdDev = 5.670 ns
|
|
||||||
Min = 352.567 ns, Q1 = 357.987 ns, Median = 364.175 ns, Q3 = 365.674 ns, Max = 373.787 ns
|
|
||||||
IQR = 7.687 ns, LowerFence = 346.456 ns, UpperFence = 377.205 ns
|
|
||||||
ConfidenceInterval = [355.866 ns; 369.446 ns] (CI 99.9%), Margin = 6.790 ns (1.87% of Mean)
|
|
||||||
Skewness = -0.08, Kurtosis = 2.32, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 16:30 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 113200.00 ns, 0.2159 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 193998300.00 ns, 370.0224 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1000.00 ns, 0.0019 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadWarmup 7: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 136176100.00 ns, 259.7353 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 62339100.00 ns, 118.9024 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 47576100.00 ns, 90.7442 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 47170000.00 ns, 89.9696 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 42901900.00 ns, 81.8289 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 46176000.00 ns, 88.0737 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 44997000.00 ns, 85.8250 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 41723200.00 ns, 79.5807 ns/op
|
|
||||||
WorkloadWarmup 9: 524288 op, 42964100.00 ns, 81.9475 ns/op
|
|
||||||
WorkloadWarmup 10: 524288 op, 44117900.00 ns, 84.1482 ns/op
|
|
||||||
WorkloadWarmup 11: 524288 op, 42704200.00 ns, 81.4518 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 42949100.00 ns, 81.9189 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 42231100.00 ns, 80.5494 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 44446600.00 ns, 84.7752 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 44677800.00 ns, 85.2161 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 43298000.00 ns, 82.5844 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 44244300.00 ns, 84.3893 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 44176500.00 ns, 84.2600 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 60064400.00 ns, 114.5638 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 65755600.00 ns, 125.4189 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 42845400.00 ns, 81.7211 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 47539500.00 ns, 90.6744 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 44916900.00 ns, 85.6722 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 44199900.00 ns, 84.3046 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 43254600.00 ns, 82.5016 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 43000000.00 ns, 82.0160 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 44285900.00 ns, 84.4687 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 44213600.00 ns, 84.3307 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 42392500.00 ns, 80.8573 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 44178700.00 ns, 84.2642 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 42948900.00 ns, 81.9185 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 42230900.00 ns, 80.5490 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 44446400.00 ns, 84.7748 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 44677600.00 ns, 85.2158 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 43297800.00 ns, 82.5840 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 44244100.00 ns, 84.3889 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 44176300.00 ns, 84.2596 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 42845200.00 ns, 81.7207 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 44916700.00 ns, 85.6718 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 44199700.00 ns, 84.3042 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 43254400.00 ns, 82.5012 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 42999800.00 ns, 82.0156 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 44285700.00 ns, 84.4683 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 44213400.00 ns, 84.3304 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 42392300.00 ns, 80.8569 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 44178500.00 ns, 84.2638 ns/op
|
|
||||||
// GC: 0 0 0 624 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 83.364 ns, StdErr = 0.401 ns (0.48%), N = 16, StdDev = 1.604 ns
|
|
||||||
Min = 80.549 ns, Q1 = 81.991 ns, Median = 84.262 ns, Q3 = 84.409 ns, Max = 85.672 ns
|
|
||||||
IQR = 2.417 ns, LowerFence = 78.365 ns, UpperFence = 88.035 ns
|
|
||||||
ConfidenceInterval = [81.730 ns; 84.998 ns] (CI 99.9%), Margin = 1.634 ns (1.96% of Mean)
|
|
||||||
Skewness = -0.33, Kurtosis = 1.58, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 16:30 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 362.656 ns, StdErr = 1.572 ns (0.43%), N = 13, StdDev = 5.670 ns
|
|
||||||
Min = 352.567 ns, Q1 = 357.987 ns, Median = 364.175 ns, Q3 = 365.674 ns, Max = 373.787 ns
|
|
||||||
IQR = 7.687 ns, LowerFence = 346.456 ns, UpperFence = 377.205 ns
|
|
||||||
ConfidenceInterval = [355.866 ns; 369.446 ns] (CI 99.9%), Margin = 6.790 ns (1.87% of Mean)
|
|
||||||
Skewness = -0.08, Kurtosis = 2.32, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[351.724 ns ; 360.859 ns) | @@@@
|
|
||||||
[360.859 ns ; 376.952 ns) | @@@@@@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 83.364 ns, StdErr = 0.401 ns (0.48%), N = 16, StdDev = 1.604 ns
|
|
||||||
Min = 80.549 ns, Q1 = 81.991 ns, Median = 84.262 ns, Q3 = 84.409 ns, Max = 85.672 ns
|
|
||||||
IQR = 2.417 ns, LowerFence = 78.365 ns, UpperFence = 88.035 ns
|
|
||||||
ConfidenceInterval = [81.730 ns; 84.998 ns] (CI 99.9%), Margin = 1.634 ns (1.96% of Mean)
|
|
||||||
Skewness = -0.33, Kurtosis = 1.58, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[79.713 ns ; 82.988 ns) | @@@@@@@
|
|
||||||
[82.988 ns ; 85.815 ns) | @@@@@@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |----------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 362.66 ns | 6.790 ns | 5.670 ns | 4.35 | 0.10 | - | NA |
|
|
||||||
| Libc | 83.36 ns | 1.634 ns | 1.604 ns | 1.00 | 0.03 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 42.231ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 2 outliers were removed (419.30 ns, 438.84 ns)
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 3 outliers were removed (90.67 ns..125.42 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:08 (8.94 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:09 (9.83 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,416 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 109000.00 ns, 0.2079 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 277213100.00 ns, 528.7420 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1000.00 ns, 0.0019 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 900.00 ns, 0.0017 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 800.00 ns, 0.0015 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 192352000.00 ns, 366.8823 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 190580700.00 ns, 363.5038 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 185356900.00 ns, 353.5402 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 187840900.00 ns, 358.2781 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 185652600.00 ns, 354.1042 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 181298000.00 ns, 345.7985 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 183174500.00 ns, 349.3776 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 188295800.00 ns, 359.1457 ns/op
|
|
||||||
WorkloadWarmup 9: 524288 op, 183870300.00 ns, 350.7048 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 207343200.00 ns, 395.4758 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 182015400.00 ns, 347.1668 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 181097700.00 ns, 345.4165 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 188868000.00 ns, 360.2371 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 186466900.00 ns, 355.6574 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 179882700.00 ns, 343.0990 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 185142400.00 ns, 353.1311 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 180815100.00 ns, 344.8774 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 182246100.00 ns, 347.6068 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 181802900.00 ns, 346.7615 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 180365500.00 ns, 344.0199 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 196167400.00 ns, 374.1596 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 179815900.00 ns, 342.9716 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 180257400.00 ns, 343.8137 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 179158900.00 ns, 341.7185 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 182015200.00 ns, 347.1664 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 181097500.00 ns, 345.4161 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 188867800.00 ns, 360.2367 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 186466700.00 ns, 355.6570 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 179882500.00 ns, 343.0986 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 185142200.00 ns, 353.1307 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 180814900.00 ns, 344.8771 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 182245900.00 ns, 347.6065 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 181802700.00 ns, 346.7611 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 180365300.00 ns, 344.0195 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 179815700.00 ns, 342.9712 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 180257200.00 ns, 343.8133 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 179158700.00 ns, 341.7181 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 347.421 ns, StdErr = 1.543 ns (0.44%), N = 13, StdDev = 5.562 ns
|
|
||||||
Min = 341.718 ns, Q1 = 343.813 ns, Median = 345.416 ns, Q3 = 347.606 ns, Max = 360.237 ns
|
|
||||||
IQR = 3.793 ns, LowerFence = 338.124 ns, UpperFence = 353.296 ns
|
|
||||||
ConfidenceInterval = [340.760 ns; 354.082 ns] (CI 99.9%), Margin = 6.661 ns (1.92% of Mean)
|
|
||||||
Skewness = 1.07, Kurtosis = 2.8, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 16:30 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 105400.00 ns, 0.2010 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 168283400.00 ns, 320.9751 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1100.00 ns, 0.0021 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 100.00 ns, 0.0002 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 150705000.00 ns, 287.4470 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 63909200.00 ns, 121.8971 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 43190600.00 ns, 82.3795 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 44031000.00 ns, 83.9825 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 44370700.00 ns, 84.6304 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 44177600.00 ns, 84.2621 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 45769000.00 ns, 87.2974 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 44222500.00 ns, 84.3477 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 46731800.00 ns, 89.1338 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 42714600.00 ns, 81.4716 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 43581800.00 ns, 83.1257 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 46662500.00 ns, 89.0017 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 42315500.00 ns, 80.7104 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 44748500.00 ns, 85.3510 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 41948800.00 ns, 80.0110 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 41482500.00 ns, 79.1216 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 41853500.00 ns, 79.8292 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 42577100.00 ns, 81.2094 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 43674200.00 ns, 83.3019 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 44280400.00 ns, 84.4582 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 46371300.00 ns, 88.4462 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 45367400.00 ns, 86.5314 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 47254100.00 ns, 90.1300 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 44862500.00 ns, 85.5684 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 43611400.00 ns, 83.1821 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 53393300.00 ns, 101.8396 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 44079800.00 ns, 84.0755 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 42983900.00 ns, 81.9853 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 41438700.00 ns, 79.0380 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 42927200.00 ns, 81.8771 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 44137500.00 ns, 84.1856 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 38009100.00 ns, 72.4966 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 38857400.00 ns, 74.1146 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 41548500.00 ns, 79.2475 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 38934800.00 ns, 74.2622 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 40722500.00 ns, 77.6720 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 41149600.00 ns, 78.4866 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 38797500.00 ns, 74.0004 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 37921800.00 ns, 72.3301 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 39932700.00 ns, 76.1656 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 41332400.00 ns, 78.8353 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 45421000.00 ns, 86.6337 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 38307800.00 ns, 73.0663 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 40402600.00 ns, 77.0618 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 44693200.00 ns, 85.2455 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 42630100.00 ns, 81.3105 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 37551900.00 ns, 71.6246 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 40584700.00 ns, 77.4092 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 37521300.00 ns, 71.5662 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 42117800.00 ns, 80.3333 ns/op
|
|
||||||
WorkloadActual 43: 524288 op, 41377700.00 ns, 78.9217 ns/op
|
|
||||||
WorkloadActual 44: 524288 op, 39474900.00 ns, 75.2924 ns/op
|
|
||||||
WorkloadActual 45: 524288 op, 40426700.00 ns, 77.1078 ns/op
|
|
||||||
WorkloadActual 46: 524288 op, 39300000.00 ns, 74.9588 ns/op
|
|
||||||
WorkloadActual 47: 524288 op, 42661400.00 ns, 81.3702 ns/op
|
|
||||||
WorkloadActual 48: 524288 op, 38718800.00 ns, 73.8503 ns/op
|
|
||||||
WorkloadActual 49: 524288 op, 41211400.00 ns, 78.6045 ns/op
|
|
||||||
WorkloadActual 50: 524288 op, 40978600.00 ns, 78.1605 ns/op
|
|
||||||
WorkloadActual 51: 524288 op, 39744500.00 ns, 75.8066 ns/op
|
|
||||||
WorkloadActual 52: 524288 op, 38842600.00 ns, 74.0864 ns/op
|
|
||||||
WorkloadActual 53: 524288 op, 38910900.00 ns, 74.2167 ns/op
|
|
||||||
WorkloadActual 54: 524288 op, 39885400.00 ns, 76.0754 ns/op
|
|
||||||
WorkloadActual 55: 524288 op, 39814400.00 ns, 75.9399 ns/op
|
|
||||||
WorkloadActual 56: 524288 op, 41937300.00 ns, 79.9891 ns/op
|
|
||||||
WorkloadActual 57: 524288 op, 42134600.00 ns, 80.3654 ns/op
|
|
||||||
WorkloadActual 58: 524288 op, 38301200.00 ns, 73.0537 ns/op
|
|
||||||
WorkloadActual 59: 524288 op, 42086300.00 ns, 80.2732 ns/op
|
|
||||||
WorkloadActual 60: 524288 op, 41222500.00 ns, 78.6257 ns/op
|
|
||||||
WorkloadActual 61: 524288 op, 41328300.00 ns, 78.8275 ns/op
|
|
||||||
WorkloadActual 62: 524288 op, 40509400.00 ns, 77.2655 ns/op
|
|
||||||
WorkloadActual 63: 524288 op, 39978400.00 ns, 76.2527 ns/op
|
|
||||||
WorkloadActual 64: 524288 op, 39838100.00 ns, 75.9851 ns/op
|
|
||||||
WorkloadActual 65: 524288 op, 38333600.00 ns, 73.1155 ns/op
|
|
||||||
WorkloadActual 66: 524288 op, 39932500.00 ns, 76.1652 ns/op
|
|
||||||
WorkloadActual 67: 524288 op, 40811600.00 ns, 77.8419 ns/op
|
|
||||||
WorkloadActual 68: 524288 op, 38750200.00 ns, 73.9101 ns/op
|
|
||||||
WorkloadActual 69: 524288 op, 40898100.00 ns, 78.0069 ns/op
|
|
||||||
WorkloadActual 70: 524288 op, 41990100.00 ns, 80.0898 ns/op
|
|
||||||
WorkloadActual 71: 524288 op, 40918200.00 ns, 78.0453 ns/op
|
|
||||||
WorkloadActual 72: 524288 op, 40010300.00 ns, 76.3136 ns/op
|
|
||||||
WorkloadActual 73: 524288 op, 42222400.00 ns, 80.5328 ns/op
|
|
||||||
WorkloadActual 74: 524288 op, 39622900.00 ns, 75.5747 ns/op
|
|
||||||
WorkloadActual 75: 524288 op, 40126600.00 ns, 76.5354 ns/op
|
|
||||||
WorkloadActual 76: 524288 op, 41612200.00 ns, 79.3690 ns/op
|
|
||||||
WorkloadActual 77: 524288 op, 55148600.00 ns, 105.1876 ns/op
|
|
||||||
WorkloadActual 78: 524288 op, 40925400.00 ns, 78.0590 ns/op
|
|
||||||
WorkloadActual 79: 524288 op, 40683600.00 ns, 77.5978 ns/op
|
|
||||||
WorkloadActual 80: 524288 op, 42620800.00 ns, 81.2927 ns/op
|
|
||||||
WorkloadActual 81: 524288 op, 50476500.00 ns, 96.2763 ns/op
|
|
||||||
WorkloadActual 82: 524288 op, 46461900.00 ns, 88.6190 ns/op
|
|
||||||
WorkloadActual 83: 524288 op, 42989000.00 ns, 81.9950 ns/op
|
|
||||||
WorkloadActual 84: 524288 op, 42728900.00 ns, 81.4989 ns/op
|
|
||||||
WorkloadActual 85: 524288 op, 39563700.00 ns, 75.4618 ns/op
|
|
||||||
WorkloadActual 86: 524288 op, 41526700.00 ns, 79.2059 ns/op
|
|
||||||
WorkloadActual 87: 524288 op, 40389200.00 ns, 77.0363 ns/op
|
|
||||||
WorkloadActual 88: 524288 op, 39835400.00 ns, 75.9800 ns/op
|
|
||||||
WorkloadActual 89: 524288 op, 40311300.00 ns, 76.8877 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 46731600.00 ns, 89.1335 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 42714400.00 ns, 81.4713 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 43581600.00 ns, 83.1253 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 46662300.00 ns, 89.0013 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 42315300.00 ns, 80.7100 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 44748300.00 ns, 85.3506 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 41948600.00 ns, 80.0106 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 41482300.00 ns, 79.1212 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 41853300.00 ns, 79.8288 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 42576900.00 ns, 81.2090 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 43674000.00 ns, 83.3015 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 44280200.00 ns, 84.4578 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 46371100.00 ns, 88.4459 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 45367200.00 ns, 86.5311 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 44862300.00 ns, 85.5680 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 43611200.00 ns, 83.1818 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 44079600.00 ns, 84.0752 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 42983700.00 ns, 81.9849 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 41438500.00 ns, 79.0377 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 42927000.00 ns, 81.8768 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 44137300.00 ns, 84.1852 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 38008900.00 ns, 72.4962 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 38857200.00 ns, 74.1142 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 41548300.00 ns, 79.2471 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 38934600.00 ns, 74.2619 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 40722300.00 ns, 77.6716 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 41149400.00 ns, 78.4863 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 38797300.00 ns, 74.0000 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 37921600.00 ns, 72.3297 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 39932500.00 ns, 76.1652 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 41332200.00 ns, 78.8349 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 45420800.00 ns, 86.6333 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 38307600.00 ns, 73.0659 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 40402400.00 ns, 77.0615 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 44693000.00 ns, 85.2451 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 42629900.00 ns, 81.3101 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 37551700.00 ns, 71.6242 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 40584500.00 ns, 77.4088 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 37521100.00 ns, 71.5658 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 42117600.00 ns, 80.3329 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 41377500.00 ns, 78.9213 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 39474700.00 ns, 75.2920 ns/op
|
|
||||||
WorkloadResult 43: 524288 op, 40426500.00 ns, 77.1074 ns/op
|
|
||||||
WorkloadResult 44: 524288 op, 39299800.00 ns, 74.9584 ns/op
|
|
||||||
WorkloadResult 45: 524288 op, 42661200.00 ns, 81.3698 ns/op
|
|
||||||
WorkloadResult 46: 524288 op, 38718600.00 ns, 73.8499 ns/op
|
|
||||||
WorkloadResult 47: 524288 op, 41211200.00 ns, 78.6041 ns/op
|
|
||||||
WorkloadResult 48: 524288 op, 40978400.00 ns, 78.1601 ns/op
|
|
||||||
WorkloadResult 49: 524288 op, 39744300.00 ns, 75.8062 ns/op
|
|
||||||
WorkloadResult 50: 524288 op, 38842400.00 ns, 74.0860 ns/op
|
|
||||||
WorkloadResult 51: 524288 op, 38910700.00 ns, 74.2163 ns/op
|
|
||||||
WorkloadResult 52: 524288 op, 39885200.00 ns, 76.0750 ns/op
|
|
||||||
WorkloadResult 53: 524288 op, 39814200.00 ns, 75.9396 ns/op
|
|
||||||
WorkloadResult 54: 524288 op, 41937100.00 ns, 79.9887 ns/op
|
|
||||||
WorkloadResult 55: 524288 op, 42134400.00 ns, 80.3650 ns/op
|
|
||||||
WorkloadResult 56: 524288 op, 38301000.00 ns, 73.0534 ns/op
|
|
||||||
WorkloadResult 57: 524288 op, 42086100.00 ns, 80.2729 ns/op
|
|
||||||
WorkloadResult 58: 524288 op, 41222300.00 ns, 78.6253 ns/op
|
|
||||||
WorkloadResult 59: 524288 op, 41328100.00 ns, 78.8271 ns/op
|
|
||||||
WorkloadResult 60: 524288 op, 40509200.00 ns, 77.2652 ns/op
|
|
||||||
WorkloadResult 61: 524288 op, 39978200.00 ns, 76.2524 ns/op
|
|
||||||
WorkloadResult 62: 524288 op, 39837900.00 ns, 75.9848 ns/op
|
|
||||||
WorkloadResult 63: 524288 op, 38333400.00 ns, 73.1152 ns/op
|
|
||||||
WorkloadResult 64: 524288 op, 39932300.00 ns, 76.1648 ns/op
|
|
||||||
WorkloadResult 65: 524288 op, 40811400.00 ns, 77.8416 ns/op
|
|
||||||
WorkloadResult 66: 524288 op, 38750000.00 ns, 73.9098 ns/op
|
|
||||||
WorkloadResult 67: 524288 op, 40897900.00 ns, 78.0066 ns/op
|
|
||||||
WorkloadResult 68: 524288 op, 41989900.00 ns, 80.0894 ns/op
|
|
||||||
WorkloadResult 69: 524288 op, 40918000.00 ns, 78.0449 ns/op
|
|
||||||
WorkloadResult 70: 524288 op, 40010100.00 ns, 76.3132 ns/op
|
|
||||||
WorkloadResult 71: 524288 op, 42222200.00 ns, 80.5325 ns/op
|
|
||||||
WorkloadResult 72: 524288 op, 39622700.00 ns, 75.5743 ns/op
|
|
||||||
WorkloadResult 73: 524288 op, 40126400.00 ns, 76.5350 ns/op
|
|
||||||
WorkloadResult 74: 524288 op, 41612000.00 ns, 79.3686 ns/op
|
|
||||||
WorkloadResult 75: 524288 op, 40925200.00 ns, 78.0586 ns/op
|
|
||||||
WorkloadResult 76: 524288 op, 40683400.00 ns, 77.5974 ns/op
|
|
||||||
WorkloadResult 77: 524288 op, 42620600.00 ns, 81.2923 ns/op
|
|
||||||
WorkloadResult 78: 524288 op, 46461700.00 ns, 88.6187 ns/op
|
|
||||||
WorkloadResult 79: 524288 op, 42988800.00 ns, 81.9946 ns/op
|
|
||||||
WorkloadResult 80: 524288 op, 42728700.00 ns, 81.4985 ns/op
|
|
||||||
WorkloadResult 81: 524288 op, 39563500.00 ns, 75.4614 ns/op
|
|
||||||
WorkloadResult 82: 524288 op, 41526500.00 ns, 79.2055 ns/op
|
|
||||||
WorkloadResult 83: 524288 op, 40389000.00 ns, 77.0359 ns/op
|
|
||||||
WorkloadResult 84: 524288 op, 39835200.00 ns, 75.9796 ns/op
|
|
||||||
WorkloadResult 85: 524288 op, 40311100.00 ns, 76.8873 ns/op
|
|
||||||
// GC: 0 0 0 624 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 78.913 ns, StdErr = 0.454 ns (0.58%), N = 85, StdDev = 4.185 ns
|
|
||||||
Min = 71.566 ns, Q1 = 75.985 ns, Median = 78.604 ns, Q3 = 81.310 ns, Max = 89.133 ns
|
|
||||||
IQR = 5.325 ns, LowerFence = 67.997 ns, UpperFence = 89.298 ns
|
|
||||||
ConfidenceInterval = [77.365 ns; 80.461 ns] (CI 99.9%), Margin = 1.548 ns (1.96% of Mean)
|
|
||||||
Skewness = 0.53, Kurtosis = 2.78, MValue = 2
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 16:30 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 347.421 ns, StdErr = 1.543 ns (0.44%), N = 13, StdDev = 5.562 ns
|
|
||||||
Min = 341.718 ns, Q1 = 343.813 ns, Median = 345.416 ns, Q3 = 347.606 ns, Max = 360.237 ns
|
|
||||||
IQR = 3.793 ns, LowerFence = 338.124 ns, UpperFence = 353.296 ns
|
|
||||||
ConfidenceInterval = [340.760 ns; 354.082 ns] (CI 99.9%), Margin = 6.661 ns (1.92% of Mean)
|
|
||||||
Skewness = 1.07, Kurtosis = 2.8, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[341.216 ns ; 350.850 ns) | @@@@@@@@@@
|
|
||||||
[350.850 ns ; 363.342 ns) | @@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 78.913 ns, StdErr = 0.454 ns (0.58%), N = 85, StdDev = 4.185 ns
|
|
||||||
Min = 71.566 ns, Q1 = 75.985 ns, Median = 78.604 ns, Q3 = 81.310 ns, Max = 89.133 ns
|
|
||||||
IQR = 5.325 ns, LowerFence = 67.997 ns, UpperFence = 89.298 ns
|
|
||||||
ConfidenceInterval = [77.365 ns; 80.461 ns] (CI 99.9%), Margin = 1.548 ns (1.96% of Mean)
|
|
||||||
Skewness = 0.53, Kurtosis = 2.78, MValue = 2
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[71.091 ns ; 73.832 ns) | @@@@@@@
|
|
||||||
[73.832 ns ; 76.331 ns) | @@@@@@@@@@@@@@@@@@@@
|
|
||||||
[76.331 ns ; 79.377 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[79.377 ns ; 82.161 ns) | @@@@@@@@@@@@@@@@@@
|
|
||||||
[82.161 ns ; 85.596 ns) | @@@@@@@@@
|
|
||||||
[85.596 ns ; 90.383 ns) | @@@@@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |----------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 347.42 ns | 6.661 ns | 5.562 ns | 4.41 | 0.24 | - | NA |
|
|
||||||
| Libc | 78.91 ns | 1.548 ns | 4.185 ns | 1.00 | 0.07 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 37.521ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 2 outliers were removed (374.16 ns, 395.48 ns)
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 4 outliers were removed (90.13 ns..105.19 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:12 (12.36 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:13 (13.11 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,392 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.03 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 158700.00 ns, 0.3027 ns/op
|
|
||||||
|
|
||||||
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
|
|
||||||
---> System.OverflowException: Out of memory: insufficient block size returned from spare memory.
|
|
||||||
at StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocator.Alloc(UIntPtr size)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.RunHlsf(Int32 batch, HybridLayerSegregatedFitAllocator allocator, FreePolicy policy)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.Hlsf()
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionUnroll(Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.Jit(Engine engine, Int32 jitIndex, Int32 invokeCount, Int32 unrollFactor)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.CreateReadyToRun(EngineParameters engineParameters)
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.Run(BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
--- End of inner exception stack trace ---
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
|
|
||||||
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
|
|
||||||
at BenchmarkDotNet.Toolchains.InProcess.Emit.Implementation.RunnableProgram.Run(BenchmarkId benchmarkId, Assembly partitionAssembly, BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
Executable D:\platform-dev\StgSharp.Benchmark\bin\x64\PerformanceDebug\net8.0\StgSharp.Benchmark-Job-VLPMSV-1Emitted.dll not found
|
|
||||||
ExitCode != 0 and no results reported
|
|
||||||
No Workload Results were obtained from the run.
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 17:53 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 112300.00 ns, 0.2142 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 282938900.00 ns, 539.6631 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1600.00 ns, 0.0031 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 700.00 ns, 0.0013 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 800.00 ns, 0.0015 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 7: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 900.00 ns, 0.0017 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 203550800.00 ns, 388.2423 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 75433700.00 ns, 143.8784 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 57207000.00 ns, 109.1137 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 54305200.00 ns, 103.5789 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 50096700.00 ns, 95.5519 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 50238500.00 ns, 95.8223 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 47626400.00 ns, 90.8401 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 45578900.00 ns, 86.9349 ns/op
|
|
||||||
WorkloadWarmup 9: 524288 op, 46404500.00 ns, 88.5096 ns/op
|
|
||||||
WorkloadWarmup 10: 524288 op, 45732200.00 ns, 87.2272 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 51532300.00 ns, 98.2901 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 62483800.00 ns, 119.1784 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 43758500.00 ns, 83.4627 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 41526400.00 ns, 79.2053 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 41275500.00 ns, 78.7268 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 46204600.00 ns, 88.1283 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 38803600.00 ns, 74.0120 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 48192800.00 ns, 91.9205 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 42154000.00 ns, 80.4024 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 47635600.00 ns, 90.8577 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 44029900.00 ns, 83.9804 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 43347400.00 ns, 82.6786 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 43926600.00 ns, 83.7833 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 37980100.00 ns, 72.4413 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 38802900.00 ns, 74.0107 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 40905200.00 ns, 78.0205 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 39616500.00 ns, 75.5625 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 44513800.00 ns, 84.9033 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 40492800.00 ns, 77.2339 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 40236000.00 ns, 76.7441 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 45854900.00 ns, 87.4613 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 43222900.00 ns, 82.4411 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 43253600.00 ns, 82.4997 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 40747300.00 ns, 77.7193 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 38060000.00 ns, 72.5937 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 49260700.00 ns, 93.9573 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 40123900.00 ns, 76.5303 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 40088700.00 ns, 76.4631 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 44342900.00 ns, 84.5774 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 40322600.00 ns, 76.9093 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 38524400.00 ns, 73.4795 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 38632600.00 ns, 73.6858 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 42580800.00 ns, 81.2164 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 38863300.00 ns, 74.1259 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 39206900.00 ns, 74.7812 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 40001100.00 ns, 76.2960 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 42873700.00 ns, 81.7751 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 41807000.00 ns, 79.7405 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 44323800.00 ns, 84.5409 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 43602600.00 ns, 83.1654 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 43524100.00 ns, 83.0156 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 42963200.00 ns, 81.9458 ns/op
|
|
||||||
WorkloadActual 43: 524288 op, 43123500.00 ns, 82.2515 ns/op
|
|
||||||
WorkloadActual 44: 524288 op, 41645900.00 ns, 79.4333 ns/op
|
|
||||||
WorkloadActual 45: 524288 op, 39457200.00 ns, 75.2586 ns/op
|
|
||||||
WorkloadActual 46: 524288 op, 41472300.00 ns, 79.1021 ns/op
|
|
||||||
WorkloadActual 47: 524288 op, 52368600.00 ns, 99.8852 ns/op
|
|
||||||
WorkloadActual 48: 524288 op, 42546200.00 ns, 81.1504 ns/op
|
|
||||||
WorkloadActual 49: 524288 op, 38418300.00 ns, 73.2771 ns/op
|
|
||||||
WorkloadActual 50: 524288 op, 40549400.00 ns, 77.3418 ns/op
|
|
||||||
WorkloadActual 51: 524288 op, 43907900.00 ns, 83.7477 ns/op
|
|
||||||
WorkloadActual 52: 524288 op, 43076200.00 ns, 82.1613 ns/op
|
|
||||||
WorkloadActual 53: 524288 op, 41058300.00 ns, 78.3125 ns/op
|
|
||||||
WorkloadActual 54: 524288 op, 41587800.00 ns, 79.3224 ns/op
|
|
||||||
WorkloadActual 55: 524288 op, 41399800.00 ns, 78.9639 ns/op
|
|
||||||
WorkloadActual 56: 524288 op, 39337900.00 ns, 75.0311 ns/op
|
|
||||||
WorkloadActual 57: 524288 op, 36633700.00 ns, 69.8732 ns/op
|
|
||||||
WorkloadActual 58: 524288 op, 39413000.00 ns, 75.1743 ns/op
|
|
||||||
WorkloadActual 59: 524288 op, 41877700.00 ns, 79.8754 ns/op
|
|
||||||
WorkloadActual 60: 524288 op, 38206800.00 ns, 72.8737 ns/op
|
|
||||||
WorkloadActual 61: 524288 op, 37522300.00 ns, 71.5681 ns/op
|
|
||||||
WorkloadActual 62: 524288 op, 41227400.00 ns, 78.6350 ns/op
|
|
||||||
WorkloadActual 63: 524288 op, 38965500.00 ns, 74.3208 ns/op
|
|
||||||
WorkloadActual 64: 524288 op, 46424400.00 ns, 88.5475 ns/op
|
|
||||||
WorkloadActual 65: 524288 op, 39323300.00 ns, 75.0032 ns/op
|
|
||||||
WorkloadActual 66: 524288 op, 40388800.00 ns, 77.0355 ns/op
|
|
||||||
WorkloadActual 67: 524288 op, 36990700.00 ns, 70.5542 ns/op
|
|
||||||
WorkloadActual 68: 524288 op, 39161300.00 ns, 74.6943 ns/op
|
|
||||||
WorkloadActual 69: 524288 op, 40079900.00 ns, 76.4463 ns/op
|
|
||||||
WorkloadActual 70: 524288 op, 41903300.00 ns, 79.9242 ns/op
|
|
||||||
WorkloadActual 71: 524288 op, 39337800.00 ns, 75.0309 ns/op
|
|
||||||
WorkloadActual 72: 524288 op, 43974300.00 ns, 83.8743 ns/op
|
|
||||||
WorkloadActual 73: 524288 op, 42499000.00 ns, 81.0604 ns/op
|
|
||||||
WorkloadActual 74: 524288 op, 41748800.00 ns, 79.6295 ns/op
|
|
||||||
WorkloadActual 75: 524288 op, 40434600.00 ns, 77.1229 ns/op
|
|
||||||
WorkloadActual 76: 524288 op, 41375000.00 ns, 78.9165 ns/op
|
|
||||||
WorkloadActual 77: 524288 op, 42255100.00 ns, 80.5952 ns/op
|
|
||||||
WorkloadActual 78: 524288 op, 44473100.00 ns, 84.8257 ns/op
|
|
||||||
WorkloadActual 79: 524288 op, 44029100.00 ns, 83.9788 ns/op
|
|
||||||
WorkloadActual 80: 524288 op, 42709100.00 ns, 81.4611 ns/op
|
|
||||||
WorkloadActual 81: 524288 op, 40423200.00 ns, 77.1011 ns/op
|
|
||||||
WorkloadActual 82: 524288 op, 40002000.00 ns, 76.2978 ns/op
|
|
||||||
WorkloadActual 83: 524288 op, 41108000.00 ns, 78.4073 ns/op
|
|
||||||
WorkloadActual 84: 524288 op, 39557500.00 ns, 75.4499 ns/op
|
|
||||||
WorkloadActual 85: 524288 op, 41994400.00 ns, 80.0980 ns/op
|
|
||||||
WorkloadActual 86: 524288 op, 39806300.00 ns, 75.9245 ns/op
|
|
||||||
WorkloadActual 87: 524288 op, 38232600.00 ns, 72.9229 ns/op
|
|
||||||
WorkloadActual 88: 524288 op, 39345800.00 ns, 75.0462 ns/op
|
|
||||||
WorkloadActual 89: 524288 op, 43241600.00 ns, 82.4768 ns/op
|
|
||||||
WorkloadActual 90: 524288 op, 40044200.00 ns, 76.3783 ns/op
|
|
||||||
WorkloadActual 91: 524288 op, 42783800.00 ns, 81.6036 ns/op
|
|
||||||
WorkloadActual 92: 524288 op, 45928700.00 ns, 87.6020 ns/op
|
|
||||||
WorkloadActual 93: 524288 op, 42584400.00 ns, 81.2233 ns/op
|
|
||||||
WorkloadActual 94: 524288 op, 39979300.00 ns, 76.2545 ns/op
|
|
||||||
WorkloadActual 95: 524288 op, 42005300.00 ns, 80.1188 ns/op
|
|
||||||
WorkloadActual 96: 524288 op, 43468400.00 ns, 82.9094 ns/op
|
|
||||||
WorkloadActual 97: 524288 op, 45171800.00 ns, 86.1584 ns/op
|
|
||||||
WorkloadActual 98: 524288 op, 42725100.00 ns, 81.4917 ns/op
|
|
||||||
WorkloadActual 99: 524288 op, 43682300.00 ns, 83.3174 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 43758300.00 ns, 83.4623 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 41526200.00 ns, 79.2049 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 41275300.00 ns, 78.7264 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 46204400.00 ns, 88.1279 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 38803400.00 ns, 74.0116 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 48192600.00 ns, 91.9201 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 42153800.00 ns, 80.4020 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 47635400.00 ns, 90.8573 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 44029700.00 ns, 83.9800 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 43347200.00 ns, 82.6782 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 43926400.00 ns, 83.7830 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 37979900.00 ns, 72.4409 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 38802700.00 ns, 74.0103 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 40905000.00 ns, 78.0201 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 39616300.00 ns, 75.5621 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 44513600.00 ns, 84.9030 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 40492600.00 ns, 77.2335 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 40235800.00 ns, 76.7437 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 45854700.00 ns, 87.4609 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 43222700.00 ns, 82.4408 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 43253400.00 ns, 82.4993 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 40747100.00 ns, 77.7189 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 38059800.00 ns, 72.5933 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 40123700.00 ns, 76.5299 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 40088500.00 ns, 76.4627 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 44342700.00 ns, 84.5770 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 40322400.00 ns, 76.9089 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 38524200.00 ns, 73.4791 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 38632400.00 ns, 73.6855 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 42580600.00 ns, 81.2160 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 38863100.00 ns, 74.1255 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 39206700.00 ns, 74.7808 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 40000900.00 ns, 76.2957 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 42873500.00 ns, 81.7747 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 41806800.00 ns, 79.7401 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 44323600.00 ns, 84.5406 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 43602400.00 ns, 83.1650 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 43523900.00 ns, 83.0153 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 42963000.00 ns, 81.9454 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 43123300.00 ns, 82.2512 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 41645700.00 ns, 79.4329 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 39457000.00 ns, 75.2583 ns/op
|
|
||||||
WorkloadResult 43: 524288 op, 41472100.00 ns, 79.1018 ns/op
|
|
||||||
WorkloadResult 44: 524288 op, 42546000.00 ns, 81.1501 ns/op
|
|
||||||
WorkloadResult 45: 524288 op, 38418100.00 ns, 73.2767 ns/op
|
|
||||||
WorkloadResult 46: 524288 op, 40549200.00 ns, 77.3415 ns/op
|
|
||||||
WorkloadResult 47: 524288 op, 43907700.00 ns, 83.7473 ns/op
|
|
||||||
WorkloadResult 48: 524288 op, 43076000.00 ns, 82.1609 ns/op
|
|
||||||
WorkloadResult 49: 524288 op, 41058100.00 ns, 78.3121 ns/op
|
|
||||||
WorkloadResult 50: 524288 op, 41587600.00 ns, 79.3221 ns/op
|
|
||||||
WorkloadResult 51: 524288 op, 41399600.00 ns, 78.9635 ns/op
|
|
||||||
WorkloadResult 52: 524288 op, 39337700.00 ns, 75.0307 ns/op
|
|
||||||
WorkloadResult 53: 524288 op, 36633500.00 ns, 69.8729 ns/op
|
|
||||||
WorkloadResult 54: 524288 op, 39412800.00 ns, 75.1740 ns/op
|
|
||||||
WorkloadResult 55: 524288 op, 41877500.00 ns, 79.8750 ns/op
|
|
||||||
WorkloadResult 56: 524288 op, 38206600.00 ns, 72.8733 ns/op
|
|
||||||
WorkloadResult 57: 524288 op, 37522100.00 ns, 71.5677 ns/op
|
|
||||||
WorkloadResult 58: 524288 op, 41227200.00 ns, 78.6346 ns/op
|
|
||||||
WorkloadResult 59: 524288 op, 38965300.00 ns, 74.3204 ns/op
|
|
||||||
WorkloadResult 60: 524288 op, 46424200.00 ns, 88.5471 ns/op
|
|
||||||
WorkloadResult 61: 524288 op, 39323100.00 ns, 75.0029 ns/op
|
|
||||||
WorkloadResult 62: 524288 op, 40388600.00 ns, 77.0351 ns/op
|
|
||||||
WorkloadResult 63: 524288 op, 36990500.00 ns, 70.5538 ns/op
|
|
||||||
WorkloadResult 64: 524288 op, 39161100.00 ns, 74.6939 ns/op
|
|
||||||
WorkloadResult 65: 524288 op, 40079700.00 ns, 76.4460 ns/op
|
|
||||||
WorkloadResult 66: 524288 op, 41903100.00 ns, 79.9238 ns/op
|
|
||||||
WorkloadResult 67: 524288 op, 39337600.00 ns, 75.0305 ns/op
|
|
||||||
WorkloadResult 68: 524288 op, 43974100.00 ns, 83.8739 ns/op
|
|
||||||
WorkloadResult 69: 524288 op, 42498800.00 ns, 81.0600 ns/op
|
|
||||||
WorkloadResult 70: 524288 op, 41748600.00 ns, 79.6291 ns/op
|
|
||||||
WorkloadResult 71: 524288 op, 40434400.00 ns, 77.1225 ns/op
|
|
||||||
WorkloadResult 72: 524288 op, 41374800.00 ns, 78.9162 ns/op
|
|
||||||
WorkloadResult 73: 524288 op, 42254900.00 ns, 80.5948 ns/op
|
|
||||||
WorkloadResult 74: 524288 op, 44472900.00 ns, 84.8253 ns/op
|
|
||||||
WorkloadResult 75: 524288 op, 44028900.00 ns, 83.9785 ns/op
|
|
||||||
WorkloadResult 76: 524288 op, 42708900.00 ns, 81.4608 ns/op
|
|
||||||
WorkloadResult 77: 524288 op, 40423000.00 ns, 77.1008 ns/op
|
|
||||||
WorkloadResult 78: 524288 op, 40001800.00 ns, 76.2974 ns/op
|
|
||||||
WorkloadResult 79: 524288 op, 41107800.00 ns, 78.4069 ns/op
|
|
||||||
WorkloadResult 80: 524288 op, 39557300.00 ns, 75.4496 ns/op
|
|
||||||
WorkloadResult 81: 524288 op, 41994200.00 ns, 80.0976 ns/op
|
|
||||||
WorkloadResult 82: 524288 op, 39806100.00 ns, 75.9241 ns/op
|
|
||||||
WorkloadResult 83: 524288 op, 38232400.00 ns, 72.9225 ns/op
|
|
||||||
WorkloadResult 84: 524288 op, 39345600.00 ns, 75.0458 ns/op
|
|
||||||
WorkloadResult 85: 524288 op, 43241400.00 ns, 82.4764 ns/op
|
|
||||||
WorkloadResult 86: 524288 op, 40044000.00 ns, 76.3779 ns/op
|
|
||||||
WorkloadResult 87: 524288 op, 42783600.00 ns, 81.6032 ns/op
|
|
||||||
WorkloadResult 88: 524288 op, 45928500.00 ns, 87.6017 ns/op
|
|
||||||
WorkloadResult 89: 524288 op, 42584200.00 ns, 81.2229 ns/op
|
|
||||||
WorkloadResult 90: 524288 op, 39979100.00 ns, 76.2541 ns/op
|
|
||||||
WorkloadResult 91: 524288 op, 42005100.00 ns, 80.1184 ns/op
|
|
||||||
WorkloadResult 92: 524288 op, 43468200.00 ns, 82.9090 ns/op
|
|
||||||
WorkloadResult 93: 524288 op, 45171600.00 ns, 86.1580 ns/op
|
|
||||||
WorkloadResult 94: 524288 op, 42724900.00 ns, 81.4913 ns/op
|
|
||||||
WorkloadResult 95: 524288 op, 43682100.00 ns, 83.3170 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 79.244 ns, StdErr = 0.466 ns (0.59%), N = 95, StdDev = 4.542 ns
|
|
||||||
Min = 69.873 ns, Q1 = 75.743 ns, Median = 79.102 ns, Q3 = 82.459 ns, Max = 91.920 ns
|
|
||||||
IQR = 6.715 ns, LowerFence = 65.670 ns, UpperFence = 92.532 ns
|
|
||||||
ConfidenceInterval = [77.661 ns; 80.827 ns] (CI 99.9%), Margin = 1.583 ns (2.00% of Mean)
|
|
||||||
Skewness = 0.36, Kurtosis = 2.76, MValue = 2.24
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 17:53 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
There are not any results runs
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 79.244 ns, StdErr = 0.466 ns (0.59%), N = 95, StdDev = 4.542 ns
|
|
||||||
Min = 69.873 ns, Q1 = 75.743 ns, Median = 79.102 ns, Q3 = 82.459 ns, Max = 91.920 ns
|
|
||||||
IQR = 6.715 ns, LowerFence = 65.670 ns, UpperFence = 92.532 ns
|
|
||||||
ConfidenceInterval = [77.661 ns; 80.827 ns] (CI 99.9%), Margin = 1.583 ns (2.00% of Mean)
|
|
||||||
Skewness = 0.36, Kurtosis = 2.76, MValue = 2.24
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[69.414 ns ; 72.074 ns) | @@@
|
|
||||||
[72.074 ns ; 74.657 ns) | @@@@@@@@@@@
|
|
||||||
[74.657 ns ; 78.622 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[78.622 ns ; 81.414 ns) | @@@@@@@@@@@@@@@@@@@@
|
|
||||||
[81.414 ns ; 84.027 ns) | @@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[84.027 ns ; 86.656 ns) | @@@@@
|
|
||||||
[86.656 ns ; 89.311 ns) | @@@@
|
|
||||||
[89.311 ns ; 92.695 ns) | @@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |---------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | NA | NA | NA | ? | ? | NA | ? |
|
|
||||||
| Libc | 79.24 ns | 1.583 ns | 4.542 ns | 1.00 | 0.08 | - | NA |
|
|
||||||
|
|
||||||
Benchmarks with issues:
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
Environment
|
|
||||||
Summary -> Detected error exit code from one of the benchmarks. It might be caused by following antivirus software:
|
|
||||||
- Windows Defender (windowsdefender://)
|
|
||||||
Use InProcessEmitToolchain or InProcessNoEmitToolchain to avoid new process creation.
|
|
||||||
|
|
||||||
BaselineCustomAnalyzer
|
|
||||||
Summary -> A question mark '?' symbol indicates that it was not possible to compute the (Ratio, RatioSD, Alloc Ratio) column(s) because the baseline or benchmark could not be found, or the baseline value is too close to zero.
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 36.634ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 4 outliers were removed (93.96 ns..119.18 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:07 (7.14 sec), executed benchmarks: 1
|
|
||||||
|
|
||||||
Global total time: 00:00:08 (8.07 sec), executed benchmarks: 1
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,323 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.04 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 164900.00 ns, 0.3145 ns/op
|
|
||||||
|
|
||||||
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
|
|
||||||
---> System.OverflowException: Out of memory: insufficient block size returned from spare memory.
|
|
||||||
at StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocator.Alloc(UIntPtr size)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.RunHlsf(Int32 batch, HybridLayerSegregatedFitAllocator allocator, FreePolicy policy)
|
|
||||||
at StgSharp.Benchmark.HlsfAllocatorBench.Hlsf()
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionUnroll(Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount)
|
|
||||||
at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.Jit(Engine engine, Int32 jitIndex, Int32 invokeCount, Int32 unrollFactor)
|
|
||||||
at BenchmarkDotNet.Engines.EngineFactory.CreateReadyToRun(EngineParameters engineParameters)
|
|
||||||
at BenchmarkDotNet.Autogenerated.Runnable_0.Run(BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
--- End of inner exception stack trace ---
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
|
|
||||||
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
|
|
||||||
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
|
|
||||||
at BenchmarkDotNet.Toolchains.InProcess.Emit.Implementation.RunnableProgram.Run(BenchmarkId benchmarkId, Assembly partitionAssembly, BenchmarkCase benchmarkCase, IHost host)
|
|
||||||
Executable D:\platform-dev\StgSharp.Benchmark\bin\x64\PerformanceDebug\net8.0\StgSharp.Benchmark-Job-VLPMSV-1Emitted.dll not found
|
|
||||||
ExitCode != 0 and no results reported
|
|
||||||
No Workload Results were obtained from the run.
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 17:57 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 119700.00 ns, 0.2283 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 261154100.00 ns, 498.1119 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 2100.00 ns, 0.0040 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 7: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 900.00 ns, 0.0017 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 232156800.00 ns, 442.8040 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 101291700.00 ns, 193.1986 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 55157600.00 ns, 105.2048 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 58533200.00 ns, 111.6432 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 70997300.00 ns, 135.4166 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 65011400.00 ns, 123.9994 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 61015000.00 ns, 116.3769 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 58458900.00 ns, 111.5015 ns/op
|
|
||||||
WorkloadWarmup 9: 524288 op, 53588400.00 ns, 102.2118 ns/op
|
|
||||||
WorkloadWarmup 10: 524288 op, 55418100.00 ns, 105.7016 ns/op
|
|
||||||
WorkloadWarmup 11: 524288 op, 56434100.00 ns, 107.6395 ns/op
|
|
||||||
WorkloadWarmup 12: 524288 op, 56056700.00 ns, 106.9197 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 56035200.00 ns, 106.8787 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 55319100.00 ns, 105.5128 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 60177300.00 ns, 114.7791 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 59395600.00 ns, 113.2881 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 49096700.00 ns, 93.6445 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 46569800.00 ns, 88.8248 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 49716000.00 ns, 94.8257 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 49313800.00 ns, 94.0586 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 49337100.00 ns, 94.1031 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 49834900.00 ns, 95.0525 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 48532900.00 ns, 92.5692 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 48949000.00 ns, 93.3628 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 53338000.00 ns, 101.7342 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 50492400.00 ns, 96.3066 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 49630400.00 ns, 94.6625 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 50724300.00 ns, 96.7489 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 72301100.00 ns, 137.9034 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 52940500.00 ns, 100.9760 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 51501600.00 ns, 98.2315 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 49700000.00 ns, 94.7952 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 50208600.00 ns, 95.7653 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 47051700.00 ns, 89.7440 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 51822600.00 ns, 98.8438 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 46852600.00 ns, 89.3642 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 51565400.00 ns, 98.3532 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 49218700.00 ns, 93.8772 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 45966400.00 ns, 87.6740 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 48984700.00 ns, 93.4309 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 50667400.00 ns, 96.6404 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 47839700.00 ns, 91.2470 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 47379600.00 ns, 90.3694 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 47219000.00 ns, 90.0631 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 47992300.00 ns, 91.5380 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 47621200.00 ns, 90.8302 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 46254500.00 ns, 88.2235 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 49441400.00 ns, 94.3020 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 50744200.00 ns, 96.7869 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 43622700.00 ns, 83.2037 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 46955200.00 ns, 89.5599 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 45042600.00 ns, 85.9119 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 47271700.00 ns, 90.1636 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 46877000.00 ns, 89.4108 ns/op
|
|
||||||
WorkloadActual 43: 524288 op, 44576500.00 ns, 85.0229 ns/op
|
|
||||||
WorkloadActual 44: 524288 op, 50367100.00 ns, 96.0676 ns/op
|
|
||||||
WorkloadActual 45: 524288 op, 47948600.00 ns, 91.4547 ns/op
|
|
||||||
WorkloadActual 46: 524288 op, 48267000.00 ns, 92.0620 ns/op
|
|
||||||
WorkloadActual 47: 524288 op, 46292100.00 ns, 88.2952 ns/op
|
|
||||||
WorkloadActual 48: 524288 op, 47918200.00 ns, 91.3967 ns/op
|
|
||||||
WorkloadActual 49: 524288 op, 48392000.00 ns, 92.3004 ns/op
|
|
||||||
WorkloadActual 50: 524288 op, 46562300.00 ns, 88.8105 ns/op
|
|
||||||
WorkloadActual 51: 524288 op, 46230000.00 ns, 88.1767 ns/op
|
|
||||||
WorkloadActual 52: 524288 op, 46164800.00 ns, 88.0524 ns/op
|
|
||||||
WorkloadActual 53: 524288 op, 46454200.00 ns, 88.6044 ns/op
|
|
||||||
WorkloadActual 54: 524288 op, 50142900.00 ns, 95.6400 ns/op
|
|
||||||
WorkloadActual 55: 524288 op, 50885900.00 ns, 97.0572 ns/op
|
|
||||||
WorkloadActual 56: 524288 op, 47252300.00 ns, 90.1266 ns/op
|
|
||||||
WorkloadActual 57: 524288 op, 46803800.00 ns, 89.2712 ns/op
|
|
||||||
WorkloadActual 58: 524288 op, 46255700.00 ns, 88.2257 ns/op
|
|
||||||
WorkloadActual 59: 524288 op, 46668300.00 ns, 89.0127 ns/op
|
|
||||||
WorkloadActual 60: 524288 op, 49233600.00 ns, 93.9056 ns/op
|
|
||||||
WorkloadActual 61: 524288 op, 47410400.00 ns, 90.4282 ns/op
|
|
||||||
WorkloadActual 62: 524288 op, 48287700.00 ns, 92.1015 ns/op
|
|
||||||
WorkloadActual 63: 524288 op, 48881700.00 ns, 93.2344 ns/op
|
|
||||||
WorkloadActual 64: 524288 op, 47329300.00 ns, 90.2735 ns/op
|
|
||||||
WorkloadActual 65: 524288 op, 47396700.00 ns, 90.4020 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 49096400.00 ns, 93.6440 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 46569500.00 ns, 88.8243 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 49715700.00 ns, 94.8252 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 49313500.00 ns, 94.0580 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 49336800.00 ns, 94.1025 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 49834600.00 ns, 95.0520 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 48532600.00 ns, 92.5686 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 48948700.00 ns, 93.3622 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 53337700.00 ns, 101.7336 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 50492100.00 ns, 96.3060 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 49630100.00 ns, 94.6619 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 50724000.00 ns, 96.7484 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 52940200.00 ns, 100.9754 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 51501300.00 ns, 98.2309 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 49699700.00 ns, 94.7947 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 50208300.00 ns, 95.7647 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 47051400.00 ns, 89.7434 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 51822300.00 ns, 98.8432 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 46852300.00 ns, 89.3637 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 51565100.00 ns, 98.3526 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 49218400.00 ns, 93.8766 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 45966100.00 ns, 87.6734 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 48984400.00 ns, 93.4303 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 50667100.00 ns, 96.6398 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 47839400.00 ns, 91.2464 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 47379300.00 ns, 90.3688 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 47218700.00 ns, 90.0625 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 47992000.00 ns, 91.5375 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 47620900.00 ns, 90.8297 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 46254200.00 ns, 88.2229 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 49441100.00 ns, 94.3014 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 50743900.00 ns, 96.7863 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 43622400.00 ns, 83.2031 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 46954900.00 ns, 89.5594 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 45042300.00 ns, 85.9114 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 47271400.00 ns, 90.1630 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 46876700.00 ns, 89.4102 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 44576200.00 ns, 85.0224 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 50366800.00 ns, 96.0670 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 47948300.00 ns, 91.4541 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 48266700.00 ns, 92.0614 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 46291800.00 ns, 88.2946 ns/op
|
|
||||||
WorkloadResult 43: 524288 op, 47917900.00 ns, 91.3961 ns/op
|
|
||||||
WorkloadResult 44: 524288 op, 48391700.00 ns, 92.2998 ns/op
|
|
||||||
WorkloadResult 45: 524288 op, 46562000.00 ns, 88.8100 ns/op
|
|
||||||
WorkloadResult 46: 524288 op, 46229700.00 ns, 88.1762 ns/op
|
|
||||||
WorkloadResult 47: 524288 op, 46164500.00 ns, 88.0518 ns/op
|
|
||||||
WorkloadResult 48: 524288 op, 46453900.00 ns, 88.6038 ns/op
|
|
||||||
WorkloadResult 49: 524288 op, 50142600.00 ns, 95.6394 ns/op
|
|
||||||
WorkloadResult 50: 524288 op, 50885600.00 ns, 97.0566 ns/op
|
|
||||||
WorkloadResult 51: 524288 op, 47252000.00 ns, 90.1260 ns/op
|
|
||||||
WorkloadResult 52: 524288 op, 46803500.00 ns, 89.2706 ns/op
|
|
||||||
WorkloadResult 53: 524288 op, 46255400.00 ns, 88.2252 ns/op
|
|
||||||
WorkloadResult 54: 524288 op, 46668000.00 ns, 89.0121 ns/op
|
|
||||||
WorkloadResult 55: 524288 op, 49233300.00 ns, 93.9051 ns/op
|
|
||||||
WorkloadResult 56: 524288 op, 47410100.00 ns, 90.4276 ns/op
|
|
||||||
WorkloadResult 57: 524288 op, 48287400.00 ns, 92.1009 ns/op
|
|
||||||
WorkloadResult 58: 524288 op, 48881400.00 ns, 93.2339 ns/op
|
|
||||||
WorkloadResult 59: 524288 op, 47329000.00 ns, 90.2729 ns/op
|
|
||||||
WorkloadResult 60: 524288 op, 47396400.00 ns, 90.4015 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 92.251 ns, StdErr = 0.495 ns (0.54%), N = 60, StdDev = 3.831 ns
|
|
||||||
Min = 83.203 ns, Q1 = 89.399 ns, Median = 91.799 ns, Q3 = 94.802 ns, Max = 101.734 ns
|
|
||||||
IQR = 5.404 ns, LowerFence = 81.293 ns, UpperFence = 102.908 ns
|
|
||||||
ConfidenceInterval = [90.539 ns; 93.964 ns] (CI 99.9%), Margin = 1.713 ns (1.86% of Mean)
|
|
||||||
Skewness = 0.24, Kurtosis = 2.71, MValue = 2.55
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 17:57 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
There are not any results runs
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 92.251 ns, StdErr = 0.495 ns (0.54%), N = 60, StdDev = 3.831 ns
|
|
||||||
Min = 83.203 ns, Q1 = 89.399 ns, Median = 91.799 ns, Q3 = 94.802 ns, Max = 101.734 ns
|
|
||||||
IQR = 5.404 ns, LowerFence = 81.293 ns, UpperFence = 102.908 ns
|
|
||||||
ConfidenceInterval = [90.539 ns; 93.964 ns] (CI 99.9%), Margin = 1.713 ns (1.86% of Mean)
|
|
||||||
Skewness = 0.24, Kurtosis = 2.71, MValue = 2.55
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[ 81.919 ns ; 84.183 ns) | @
|
|
||||||
[ 84.183 ns ; 86.751 ns) | @@
|
|
||||||
[ 86.751 ns ; 90.524 ns) | @@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[ 90.524 ns ; 93.215 ns) | @@@@@@@@@
|
|
||||||
[ 93.215 ns ; 95.784 ns) | @@@@@@@@@@@@@@@
|
|
||||||
[ 95.784 ns ; 100.070 ns) | @@@@@@@@@
|
|
||||||
[100.070 ns ; 103.018 ns) | @@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |---------:|---------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | NA | NA | NA | ? | ? | NA | ? |
|
|
||||||
| Libc | 92.25 ns | 1.713 ns | 3.831 ns | 1.00 | 0.06 | - | NA |
|
|
||||||
|
|
||||||
Benchmarks with issues:
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
Environment
|
|
||||||
Summary -> Detected error exit code from one of the benchmarks. It might be caused by following antivirus software:
|
|
||||||
- Windows Defender (windowsdefender://)
|
|
||||||
Use InProcessEmitToolchain or InProcessNoEmitToolchain to avoid new process creation.
|
|
||||||
|
|
||||||
BaselineCustomAnalyzer
|
|
||||||
Summary -> A question mark '?' symbol indicates that it was not possible to compute the (Ratio, RatioSD, Alloc Ratio) column(s) because the baseline or benchmark could not be found, or the baseline value is too close to zero.
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 43.623ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 5 outliers were removed (105.51 ns..137.90 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:06 (6.28 sec), executed benchmarks: 1
|
|
||||||
|
|
||||||
Global total time: 00:00:07 (7.27 sec), executed benchmarks: 1
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
@@ -1,577 +0,0 @@
|
|||||||
// Validating benchmarks:
|
|
||||||
// ***** BenchmarkRunner: Start *****
|
|
||||||
// ***** Found 2 benchmark(s) in total *****
|
|
||||||
// ***** Building 1 exe(s) in Parallel: Start *****
|
|
||||||
// ***** Done, took 00:00:00 (0.04 sec) *****
|
|
||||||
// Found 2 benchmarks:
|
|
||||||
// HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 170700.00 ns, 0.3256 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 213418000.00 ns, 407.0625 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1700.00 ns, 0.0032 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 700.00 ns, 0.0013 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 600.00 ns, 0.0011 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 800.00 ns, 0.0015 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 500.00 ns, 0.0010 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 252951300.00 ns, 482.4663 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 161605900.00 ns, 308.2388 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 93609600.00 ns, 178.5461 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 96000800.00 ns, 183.1070 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 91877900.00 ns, 175.2432 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 108375300.00 ns, 206.7095 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 93183900.00 ns, 177.7342 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 110120000.00 ns, 210.0372 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 97982000.00 ns, 186.8858 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 97769700.00 ns, 186.4809 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 94653300.00 ns, 180.5368 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 114211600.00 ns, 217.8413 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 104147800.00 ns, 198.6462 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 95028900.00 ns, 181.2532 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 96647600.00 ns, 184.3407 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 100436100.00 ns, 191.5667 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 88665200.00 ns, 169.1154 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 107480700.00 ns, 205.0032 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 101578100.00 ns, 193.7449 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 100039600.00 ns, 190.8104 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 96859000.00 ns, 184.7439 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 95897100.00 ns, 182.9092 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 90386400.00 ns, 172.3984 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 97892800.00 ns, 186.7157 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 92106000.00 ns, 175.6783 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 92751200.00 ns, 176.9089 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 91233500.00 ns, 174.0141 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 91745300.00 ns, 174.9903 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 92608500.00 ns, 176.6367 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 89622900.00 ns, 170.9421 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 96809600.00 ns, 184.6497 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 89716700.00 ns, 171.1210 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 94844800.00 ns, 180.9021 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 89636200.00 ns, 170.9675 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 99140900.00 ns, 189.0963 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 90009900.00 ns, 171.6803 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 111639900.00 ns, 212.9362 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 95279100.00 ns, 181.7305 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 92575300.00 ns, 176.5734 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 94218800.00 ns, 179.7081 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 102244400.00 ns, 195.0157 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 100934600.00 ns, 192.5175 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 94720200.00 ns, 180.6644 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 88482900.00 ns, 168.7677 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 97937100.00 ns, 186.8002 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 86984600.00 ns, 165.9100 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 93292200.00 ns, 177.9408 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 89443100.00 ns, 170.5992 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 94903600.00 ns, 181.0143 ns/op
|
|
||||||
WorkloadActual 43: 524288 op, 90231100.00 ns, 172.1022 ns/op
|
|
||||||
WorkloadActual 44: 524288 op, 92198800.00 ns, 175.8553 ns/op
|
|
||||||
WorkloadActual 45: 524288 op, 89323200.00 ns, 170.3705 ns/op
|
|
||||||
WorkloadActual 46: 524288 op, 94476800.00 ns, 180.2002 ns/op
|
|
||||||
WorkloadActual 47: 524288 op, 99674700.00 ns, 190.1144 ns/op
|
|
||||||
WorkloadActual 48: 524288 op, 93194000.00 ns, 177.7534 ns/op
|
|
||||||
WorkloadActual 49: 524288 op, 95677200.00 ns, 182.4898 ns/op
|
|
||||||
WorkloadActual 50: 524288 op, 103928400.00 ns, 198.2277 ns/op
|
|
||||||
WorkloadActual 51: 524288 op, 90548800.00 ns, 172.7081 ns/op
|
|
||||||
WorkloadActual 52: 524288 op, 95283900.00 ns, 181.7396 ns/op
|
|
||||||
WorkloadActual 53: 524288 op, 111606700.00 ns, 212.8729 ns/op
|
|
||||||
WorkloadActual 54: 524288 op, 142315300.00 ns, 271.4449 ns/op
|
|
||||||
WorkloadActual 55: 524288 op, 112542800.00 ns, 214.6584 ns/op
|
|
||||||
WorkloadActual 56: 524288 op, 123428000.00 ns, 235.4202 ns/op
|
|
||||||
WorkloadActual 57: 524288 op, 114441700.00 ns, 218.2802 ns/op
|
|
||||||
WorkloadActual 58: 524288 op, 104485200.00 ns, 199.2897 ns/op
|
|
||||||
WorkloadActual 59: 524288 op, 113106100.00 ns, 215.7328 ns/op
|
|
||||||
WorkloadActual 60: 524288 op, 89002800.00 ns, 169.7594 ns/op
|
|
||||||
WorkloadActual 61: 524288 op, 96677700.00 ns, 184.3981 ns/op
|
|
||||||
WorkloadActual 62: 524288 op, 97580400.00 ns, 186.1198 ns/op
|
|
||||||
WorkloadActual 63: 524288 op, 95495800.00 ns, 182.1438 ns/op
|
|
||||||
WorkloadActual 64: 524288 op, 87817600.00 ns, 167.4988 ns/op
|
|
||||||
WorkloadActual 65: 524288 op, 95919600.00 ns, 182.9521 ns/op
|
|
||||||
WorkloadActual 66: 524288 op, 91671600.00 ns, 174.8497 ns/op
|
|
||||||
WorkloadActual 67: 524288 op, 95040800.00 ns, 181.2759 ns/op
|
|
||||||
WorkloadActual 68: 524288 op, 89474400.00 ns, 170.6589 ns/op
|
|
||||||
WorkloadActual 69: 524288 op, 94837700.00 ns, 180.8886 ns/op
|
|
||||||
WorkloadActual 70: 524288 op, 89780300.00 ns, 171.2423 ns/op
|
|
||||||
WorkloadActual 71: 524288 op, 90327100.00 ns, 172.2853 ns/op
|
|
||||||
WorkloadActual 72: 524288 op, 92119000.00 ns, 175.7030 ns/op
|
|
||||||
WorkloadActual 73: 524288 op, 88611900.00 ns, 169.0138 ns/op
|
|
||||||
WorkloadActual 74: 524288 op, 93362000.00 ns, 178.0739 ns/op
|
|
||||||
WorkloadActual 75: 524288 op, 89523900.00 ns, 170.7533 ns/op
|
|
||||||
WorkloadActual 76: 524288 op, 93311000.00 ns, 177.9766 ns/op
|
|
||||||
WorkloadActual 77: 524288 op, 90112000.00 ns, 171.8750 ns/op
|
|
||||||
WorkloadActual 78: 524288 op, 95963200.00 ns, 183.0353 ns/op
|
|
||||||
WorkloadActual 79: 524288 op, 91199500.00 ns, 173.9492 ns/op
|
|
||||||
WorkloadActual 80: 524288 op, 94759300.00 ns, 180.7390 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 97981600.00 ns, 186.8851 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 97769300.00 ns, 186.4801 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 94652900.00 ns, 180.5361 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 104147400.00 ns, 198.6454 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 95028500.00 ns, 181.2525 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 96647200.00 ns, 184.3399 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 100435700.00 ns, 191.5659 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 88664800.00 ns, 169.1147 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 107480300.00 ns, 205.0024 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 101577700.00 ns, 193.7441 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 100039200.00 ns, 190.8096 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 96858600.00 ns, 184.7431 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 95896700.00 ns, 182.9084 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 90386000.00 ns, 172.3976 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 97892400.00 ns, 186.7149 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 92105600.00 ns, 175.6775 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 92750800.00 ns, 176.9081 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 91233100.00 ns, 174.0133 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 91744900.00 ns, 174.9895 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 92608100.00 ns, 176.6359 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 89622500.00 ns, 170.9414 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 96809200.00 ns, 184.6489 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 89716300.00 ns, 171.1203 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 94844400.00 ns, 180.9013 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 89635800.00 ns, 170.9667 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 99140500.00 ns, 189.0955 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 90009500.00 ns, 171.6795 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 95278700.00 ns, 181.7297 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 92574900.00 ns, 176.5726 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 94218400.00 ns, 179.7073 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 102244000.00 ns, 195.0150 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 100934200.00 ns, 192.5167 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 94719800.00 ns, 180.6637 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 88482500.00 ns, 168.7670 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 97936700.00 ns, 186.7994 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 86984200.00 ns, 165.9092 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 93291800.00 ns, 177.9400 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 89442700.00 ns, 170.5984 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 94903200.00 ns, 181.0135 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 90230700.00 ns, 172.1014 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 92198400.00 ns, 175.8545 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 89322800.00 ns, 170.3697 ns/op
|
|
||||||
WorkloadResult 43: 524288 op, 94476400.00 ns, 180.1994 ns/op
|
|
||||||
WorkloadResult 44: 524288 op, 99674300.00 ns, 190.1136 ns/op
|
|
||||||
WorkloadResult 45: 524288 op, 93193600.00 ns, 177.7527 ns/op
|
|
||||||
WorkloadResult 46: 524288 op, 95676800.00 ns, 182.4890 ns/op
|
|
||||||
WorkloadResult 47: 524288 op, 103928000.00 ns, 198.2269 ns/op
|
|
||||||
WorkloadResult 48: 524288 op, 90548400.00 ns, 172.7074 ns/op
|
|
||||||
WorkloadResult 49: 524288 op, 95283500.00 ns, 181.7389 ns/op
|
|
||||||
WorkloadResult 50: 524288 op, 104484800.00 ns, 199.2889 ns/op
|
|
||||||
WorkloadResult 51: 524288 op, 89002400.00 ns, 169.7586 ns/op
|
|
||||||
WorkloadResult 52: 524288 op, 96677300.00 ns, 184.3973 ns/op
|
|
||||||
WorkloadResult 53: 524288 op, 97580000.00 ns, 186.1191 ns/op
|
|
||||||
WorkloadResult 54: 524288 op, 95495400.00 ns, 182.1430 ns/op
|
|
||||||
WorkloadResult 55: 524288 op, 87817200.00 ns, 167.4980 ns/op
|
|
||||||
WorkloadResult 56: 524288 op, 95919200.00 ns, 182.9514 ns/op
|
|
||||||
WorkloadResult 57: 524288 op, 91671200.00 ns, 174.8489 ns/op
|
|
||||||
WorkloadResult 58: 524288 op, 95040400.00 ns, 181.2752 ns/op
|
|
||||||
WorkloadResult 59: 524288 op, 89474000.00 ns, 170.6581 ns/op
|
|
||||||
WorkloadResult 60: 524288 op, 94837300.00 ns, 180.8878 ns/op
|
|
||||||
WorkloadResult 61: 524288 op, 89779900.00 ns, 171.2416 ns/op
|
|
||||||
WorkloadResult 62: 524288 op, 90326700.00 ns, 172.2845 ns/op
|
|
||||||
WorkloadResult 63: 524288 op, 92118600.00 ns, 175.7023 ns/op
|
|
||||||
WorkloadResult 64: 524288 op, 88611500.00 ns, 169.0130 ns/op
|
|
||||||
WorkloadResult 65: 524288 op, 93361600.00 ns, 178.0731 ns/op
|
|
||||||
WorkloadResult 66: 524288 op, 89523500.00 ns, 170.7525 ns/op
|
|
||||||
WorkloadResult 67: 524288 op, 93310600.00 ns, 177.9758 ns/op
|
|
||||||
WorkloadResult 68: 524288 op, 90111600.00 ns, 171.8742 ns/op
|
|
||||||
WorkloadResult 69: 524288 op, 95962800.00 ns, 183.0345 ns/op
|
|
||||||
WorkloadResult 70: 524288 op, 91199100.00 ns, 173.9485 ns/op
|
|
||||||
WorkloadResult 71: 524288 op, 94758900.00 ns, 180.7383 ns/op
|
|
||||||
// GC: 0 0 0 0 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 179.943 ns, StdErr = 1.016 ns (0.56%), N = 71, StdDev = 8.560 ns
|
|
||||||
Min = 165.909 ns, Q1 = 172.341 ns, Median = 180.199 ns, Q3 = 184.523 ns, Max = 205.002 ns
|
|
||||||
IQR = 12.182 ns, LowerFence = 154.068 ns, UpperFence = 202.796 ns
|
|
||||||
ConfidenceInterval = [176.454 ns; 183.433 ns] (CI 99.9%), Margin = 3.489 ns (1.94% of Mean)
|
|
||||||
Skewness = 0.69, Kurtosis = 3, MValue = 2.67
|
|
||||||
|
|
||||||
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2026-05-08 18:00 (0h 0m from now) **
|
|
||||||
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// **************************
|
|
||||||
// Benchmark: HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
// *** Execute ***
|
|
||||||
// Launch: 1 / 1
|
|
||||||
|
|
||||||
// Benchmark Process Environment Information:
|
|
||||||
// BenchmarkDotNet v0.15.8
|
|
||||||
// Runtime=.NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
// GC=Concurrent Workstation
|
|
||||||
// HardwareIntrinsics=AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
|
|
||||||
// Job: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
|
|
||||||
OverheadJitting 1: 524288 op, 161600.00 ns, 0.3082 ns/op
|
|
||||||
WorkloadJitting 1: 524288 op, 294013600.00 ns, 560.7864 ns/op
|
|
||||||
|
|
||||||
OverheadWarmup 1: 524288 op, 1500.00 ns, 0.0029 ns/op
|
|
||||||
OverheadWarmup 2: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 3: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadWarmup 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadWarmup 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
|
|
||||||
OverheadActual 1: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 2: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 3: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 4: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 5: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 6: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 7: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 8: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 9: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 10: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 11: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 12: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 13: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 14: 524288 op, 200.00 ns, 0.0004 ns/op
|
|
||||||
OverheadActual 15: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 16: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 17: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 18: 524288 op, 400.00 ns, 0.0008 ns/op
|
|
||||||
OverheadActual 19: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
OverheadActual 20: 524288 op, 300.00 ns, 0.0006 ns/op
|
|
||||||
|
|
||||||
WorkloadWarmup 1: 524288 op, 227604000.00 ns, 434.1202 ns/op
|
|
||||||
WorkloadWarmup 2: 524288 op, 119837700.00 ns, 228.5723 ns/op
|
|
||||||
WorkloadWarmup 3: 524288 op, 65902300.00 ns, 125.6987 ns/op
|
|
||||||
WorkloadWarmup 4: 524288 op, 67319100.00 ns, 128.4010 ns/op
|
|
||||||
WorkloadWarmup 5: 524288 op, 64887800.00 ns, 123.7637 ns/op
|
|
||||||
WorkloadWarmup 6: 524288 op, 60407500.00 ns, 115.2182 ns/op
|
|
||||||
WorkloadWarmup 7: 524288 op, 76115700.00 ns, 145.1792 ns/op
|
|
||||||
WorkloadWarmup 8: 524288 op, 79675300.00 ns, 151.9686 ns/op
|
|
||||||
WorkloadWarmup 9: 524288 op, 84446600.00 ns, 161.0691 ns/op
|
|
||||||
WorkloadWarmup 10: 524288 op, 81308200.00 ns, 155.0831 ns/op
|
|
||||||
|
|
||||||
WorkloadActual 1: 524288 op, 82950400.00 ns, 158.2153 ns/op
|
|
||||||
WorkloadActual 2: 524288 op, 72158000.00 ns, 137.6305 ns/op
|
|
||||||
WorkloadActual 3: 524288 op, 78382500.00 ns, 149.5028 ns/op
|
|
||||||
WorkloadActual 4: 524288 op, 81705300.00 ns, 155.8405 ns/op
|
|
||||||
WorkloadActual 5: 524288 op, 66191700.00 ns, 126.2506 ns/op
|
|
||||||
WorkloadActual 6: 524288 op, 66158800.00 ns, 126.1879 ns/op
|
|
||||||
WorkloadActual 7: 524288 op, 66801700.00 ns, 127.4141 ns/op
|
|
||||||
WorkloadActual 8: 524288 op, 67309600.00 ns, 128.3829 ns/op
|
|
||||||
WorkloadActual 9: 524288 op, 70345300.00 ns, 134.1730 ns/op
|
|
||||||
WorkloadActual 10: 524288 op, 68140300.00 ns, 129.9673 ns/op
|
|
||||||
WorkloadActual 11: 524288 op, 72253800.00 ns, 137.8132 ns/op
|
|
||||||
WorkloadActual 12: 524288 op, 65647300.00 ns, 125.2123 ns/op
|
|
||||||
WorkloadActual 13: 524288 op, 66886600.00 ns, 127.5761 ns/op
|
|
||||||
WorkloadActual 14: 524288 op, 72539800.00 ns, 138.3587 ns/op
|
|
||||||
WorkloadActual 15: 524288 op, 70354500.00 ns, 134.1906 ns/op
|
|
||||||
WorkloadActual 16: 524288 op, 60502900.00 ns, 115.4001 ns/op
|
|
||||||
WorkloadActual 17: 524288 op, 70347200.00 ns, 134.1766 ns/op
|
|
||||||
WorkloadActual 18: 524288 op, 63269400.00 ns, 120.6768 ns/op
|
|
||||||
WorkloadActual 19: 524288 op, 56961200.00 ns, 108.6449 ns/op
|
|
||||||
WorkloadActual 20: 524288 op, 65538300.00 ns, 125.0044 ns/op
|
|
||||||
WorkloadActual 21: 524288 op, 62201500.00 ns, 118.6399 ns/op
|
|
||||||
WorkloadActual 22: 524288 op, 61408600.00 ns, 117.1276 ns/op
|
|
||||||
WorkloadActual 23: 524288 op, 62908700.00 ns, 119.9888 ns/op
|
|
||||||
WorkloadActual 24: 524288 op, 63762400.00 ns, 121.6171 ns/op
|
|
||||||
WorkloadActual 25: 524288 op, 79688600.00 ns, 151.9939 ns/op
|
|
||||||
WorkloadActual 26: 524288 op, 67264900.00 ns, 128.2976 ns/op
|
|
||||||
WorkloadActual 27: 524288 op, 60927900.00 ns, 116.2107 ns/op
|
|
||||||
WorkloadActual 28: 524288 op, 67153700.00 ns, 128.0855 ns/op
|
|
||||||
WorkloadActual 29: 524288 op, 63684400.00 ns, 121.4684 ns/op
|
|
||||||
WorkloadActual 30: 524288 op, 72046300.00 ns, 137.4174 ns/op
|
|
||||||
WorkloadActual 31: 524288 op, 61618600.00 ns, 117.5282 ns/op
|
|
||||||
WorkloadActual 32: 524288 op, 61241800.00 ns, 116.8095 ns/op
|
|
||||||
WorkloadActual 33: 524288 op, 57179700.00 ns, 109.0616 ns/op
|
|
||||||
WorkloadActual 34: 524288 op, 63173800.00 ns, 120.4945 ns/op
|
|
||||||
WorkloadActual 35: 524288 op, 64729300.00 ns, 123.4613 ns/op
|
|
||||||
WorkloadActual 36: 524288 op, 61525700.00 ns, 117.3510 ns/op
|
|
||||||
WorkloadActual 37: 524288 op, 66442600.00 ns, 126.7292 ns/op
|
|
||||||
WorkloadActual 38: 524288 op, 61029600.00 ns, 116.4047 ns/op
|
|
||||||
WorkloadActual 39: 524288 op, 72412200.00 ns, 138.1153 ns/op
|
|
||||||
WorkloadActual 40: 524288 op, 61968800.00 ns, 118.1961 ns/op
|
|
||||||
WorkloadActual 41: 524288 op, 61055900.00 ns, 116.4549 ns/op
|
|
||||||
WorkloadActual 42: 524288 op, 59906900.00 ns, 114.2633 ns/op
|
|
||||||
WorkloadActual 43: 524288 op, 61735000.00 ns, 117.7502 ns/op
|
|
||||||
WorkloadActual 44: 524288 op, 60758100.00 ns, 115.8869 ns/op
|
|
||||||
WorkloadActual 45: 524288 op, 63402600.00 ns, 120.9309 ns/op
|
|
||||||
WorkloadActual 46: 524288 op, 61279600.00 ns, 116.8816 ns/op
|
|
||||||
WorkloadActual 47: 524288 op, 64273400.00 ns, 122.5918 ns/op
|
|
||||||
WorkloadActual 48: 524288 op, 77675800.00 ns, 148.1548 ns/op
|
|
||||||
WorkloadActual 49: 524288 op, 78931900.00 ns, 150.5507 ns/op
|
|
||||||
WorkloadActual 50: 524288 op, 67842700.00 ns, 129.3997 ns/op
|
|
||||||
WorkloadActual 51: 524288 op, 63186500.00 ns, 120.5187 ns/op
|
|
||||||
WorkloadActual 52: 524288 op, 63598000.00 ns, 121.3036 ns/op
|
|
||||||
WorkloadActual 53: 524288 op, 70199900.00 ns, 133.8957 ns/op
|
|
||||||
WorkloadActual 54: 524288 op, 66064300.00 ns, 126.0077 ns/op
|
|
||||||
WorkloadActual 55: 524288 op, 66947900.00 ns, 127.6930 ns/op
|
|
||||||
WorkloadActual 56: 524288 op, 67338600.00 ns, 128.4382 ns/op
|
|
||||||
WorkloadActual 57: 524288 op, 70583700.00 ns, 134.6277 ns/op
|
|
||||||
WorkloadActual 58: 524288 op, 68584900.00 ns, 130.8153 ns/op
|
|
||||||
WorkloadActual 59: 524288 op, 83089100.00 ns, 158.4799 ns/op
|
|
||||||
WorkloadActual 60: 524288 op, 73370200.00 ns, 139.9426 ns/op
|
|
||||||
WorkloadActual 61: 524288 op, 69931000.00 ns, 133.3828 ns/op
|
|
||||||
WorkloadActual 62: 524288 op, 69143100.00 ns, 131.8800 ns/op
|
|
||||||
WorkloadActual 63: 524288 op, 62223300.00 ns, 118.6815 ns/op
|
|
||||||
WorkloadActual 64: 524288 op, 66849800.00 ns, 127.5059 ns/op
|
|
||||||
WorkloadActual 65: 524288 op, 66068700.00 ns, 126.0160 ns/op
|
|
||||||
WorkloadActual 66: 524288 op, 61960300.00 ns, 118.1799 ns/op
|
|
||||||
WorkloadActual 67: 524288 op, 93133300.00 ns, 177.6377 ns/op
|
|
||||||
WorkloadActual 68: 524288 op, 76250600.00 ns, 145.4365 ns/op
|
|
||||||
WorkloadActual 69: 524288 op, 63350400.00 ns, 120.8313 ns/op
|
|
||||||
WorkloadActual 70: 524288 op, 68484700.00 ns, 130.6242 ns/op
|
|
||||||
WorkloadActual 71: 524288 op, 72942700.00 ns, 139.1272 ns/op
|
|
||||||
WorkloadActual 72: 524288 op, 73245200.00 ns, 139.7041 ns/op
|
|
||||||
WorkloadActual 73: 524288 op, 67134200.00 ns, 128.0483 ns/op
|
|
||||||
WorkloadActual 74: 524288 op, 59117300.00 ns, 112.7573 ns/op
|
|
||||||
WorkloadActual 75: 524288 op, 71966800.00 ns, 137.2658 ns/op
|
|
||||||
WorkloadActual 76: 524288 op, 72453300.00 ns, 138.1937 ns/op
|
|
||||||
WorkloadActual 77: 524288 op, 68227300.00 ns, 130.1332 ns/op
|
|
||||||
WorkloadActual 78: 524288 op, 72685600.00 ns, 138.6368 ns/op
|
|
||||||
WorkloadActual 79: 524288 op, 68093400.00 ns, 129.8779 ns/op
|
|
||||||
WorkloadActual 80: 524288 op, 59091900.00 ns, 112.7089 ns/op
|
|
||||||
WorkloadActual 81: 524288 op, 68364100.00 ns, 130.3942 ns/op
|
|
||||||
WorkloadActual 82: 524288 op, 65218600.00 ns, 124.3946 ns/op
|
|
||||||
WorkloadActual 83: 524288 op, 61323000.00 ns, 116.9643 ns/op
|
|
||||||
WorkloadActual 84: 524288 op, 78995500.00 ns, 150.6720 ns/op
|
|
||||||
WorkloadActual 85: 524288 op, 72060900.00 ns, 137.4453 ns/op
|
|
||||||
WorkloadActual 86: 524288 op, 60735300.00 ns, 115.8434 ns/op
|
|
||||||
WorkloadActual 87: 524288 op, 79016400.00 ns, 150.7118 ns/op
|
|
||||||
WorkloadActual 88: 524288 op, 63084900.00 ns, 120.3249 ns/op
|
|
||||||
WorkloadActual 89: 524288 op, 60692600.00 ns, 115.7619 ns/op
|
|
||||||
WorkloadActual 90: 524288 op, 75530600.00 ns, 144.0632 ns/op
|
|
||||||
WorkloadActual 91: 524288 op, 57794200.00 ns, 110.2337 ns/op
|
|
||||||
WorkloadActual 92: 524288 op, 67526200.00 ns, 128.7960 ns/op
|
|
||||||
WorkloadActual 93: 524288 op, 65949300.00 ns, 125.7883 ns/op
|
|
||||||
WorkloadActual 94: 524288 op, 79662000.00 ns, 151.9432 ns/op
|
|
||||||
WorkloadActual 95: 524288 op, 80607400.00 ns, 153.7464 ns/op
|
|
||||||
WorkloadActual 96: 524288 op, 73809300.00 ns, 140.7801 ns/op
|
|
||||||
WorkloadActual 97: 524288 op, 66853900.00 ns, 127.5137 ns/op
|
|
||||||
WorkloadActual 98: 524288 op, 61136500.00 ns, 116.6086 ns/op
|
|
||||||
WorkloadActual 99: 524288 op, 61301300.00 ns, 116.9230 ns/op
|
|
||||||
WorkloadActual 100: 524288 op, 65858000.00 ns, 125.6142 ns/op
|
|
||||||
|
|
||||||
WorkloadResult 1: 524288 op, 82950200.00 ns, 158.2150 ns/op
|
|
||||||
WorkloadResult 2: 524288 op, 72157800.00 ns, 137.6301 ns/op
|
|
||||||
WorkloadResult 3: 524288 op, 78382300.00 ns, 149.5024 ns/op
|
|
||||||
WorkloadResult 4: 524288 op, 81705100.00 ns, 155.8401 ns/op
|
|
||||||
WorkloadResult 5: 524288 op, 66191500.00 ns, 126.2503 ns/op
|
|
||||||
WorkloadResult 6: 524288 op, 66158600.00 ns, 126.1875 ns/op
|
|
||||||
WorkloadResult 7: 524288 op, 66801500.00 ns, 127.4137 ns/op
|
|
||||||
WorkloadResult 8: 524288 op, 67309400.00 ns, 128.3825 ns/op
|
|
||||||
WorkloadResult 9: 524288 op, 70345100.00 ns, 134.1726 ns/op
|
|
||||||
WorkloadResult 10: 524288 op, 68140100.00 ns, 129.9669 ns/op
|
|
||||||
WorkloadResult 11: 524288 op, 72253600.00 ns, 137.8128 ns/op
|
|
||||||
WorkloadResult 12: 524288 op, 65647100.00 ns, 125.2119 ns/op
|
|
||||||
WorkloadResult 13: 524288 op, 66886400.00 ns, 127.5757 ns/op
|
|
||||||
WorkloadResult 14: 524288 op, 72539600.00 ns, 138.3583 ns/op
|
|
||||||
WorkloadResult 15: 524288 op, 70354300.00 ns, 134.1902 ns/op
|
|
||||||
WorkloadResult 16: 524288 op, 60502700.00 ns, 115.3997 ns/op
|
|
||||||
WorkloadResult 17: 524288 op, 70347000.00 ns, 134.1763 ns/op
|
|
||||||
WorkloadResult 18: 524288 op, 63269200.00 ns, 120.6764 ns/op
|
|
||||||
WorkloadResult 19: 524288 op, 56961000.00 ns, 108.6445 ns/op
|
|
||||||
WorkloadResult 20: 524288 op, 65538100.00 ns, 125.0040 ns/op
|
|
||||||
WorkloadResult 21: 524288 op, 62201300.00 ns, 118.6396 ns/op
|
|
||||||
WorkloadResult 22: 524288 op, 61408400.00 ns, 117.1272 ns/op
|
|
||||||
WorkloadResult 23: 524288 op, 62908500.00 ns, 119.9884 ns/op
|
|
||||||
WorkloadResult 24: 524288 op, 63762200.00 ns, 121.6167 ns/op
|
|
||||||
WorkloadResult 25: 524288 op, 79688400.00 ns, 151.9936 ns/op
|
|
||||||
WorkloadResult 26: 524288 op, 67264700.00 ns, 128.2972 ns/op
|
|
||||||
WorkloadResult 27: 524288 op, 60927700.00 ns, 116.2104 ns/op
|
|
||||||
WorkloadResult 28: 524288 op, 67153500.00 ns, 128.0851 ns/op
|
|
||||||
WorkloadResult 29: 524288 op, 63684200.00 ns, 121.4680 ns/op
|
|
||||||
WorkloadResult 30: 524288 op, 72046100.00 ns, 137.4170 ns/op
|
|
||||||
WorkloadResult 31: 524288 op, 61618400.00 ns, 117.5278 ns/op
|
|
||||||
WorkloadResult 32: 524288 op, 61241600.00 ns, 116.8091 ns/op
|
|
||||||
WorkloadResult 33: 524288 op, 57179500.00 ns, 109.0612 ns/op
|
|
||||||
WorkloadResult 34: 524288 op, 63173600.00 ns, 120.4941 ns/op
|
|
||||||
WorkloadResult 35: 524288 op, 64729100.00 ns, 123.4610 ns/op
|
|
||||||
WorkloadResult 36: 524288 op, 61525500.00 ns, 117.3506 ns/op
|
|
||||||
WorkloadResult 37: 524288 op, 66442400.00 ns, 126.7288 ns/op
|
|
||||||
WorkloadResult 38: 524288 op, 61029400.00 ns, 116.4043 ns/op
|
|
||||||
WorkloadResult 39: 524288 op, 72412000.00 ns, 138.1149 ns/op
|
|
||||||
WorkloadResult 40: 524288 op, 61968600.00 ns, 118.1957 ns/op
|
|
||||||
WorkloadResult 41: 524288 op, 61055700.00 ns, 116.4545 ns/op
|
|
||||||
WorkloadResult 42: 524288 op, 59906700.00 ns, 114.2630 ns/op
|
|
||||||
WorkloadResult 43: 524288 op, 61734800.00 ns, 117.7498 ns/op
|
|
||||||
WorkloadResult 44: 524288 op, 60757900.00 ns, 115.8865 ns/op
|
|
||||||
WorkloadResult 45: 524288 op, 63402400.00 ns, 120.9305 ns/op
|
|
||||||
WorkloadResult 46: 524288 op, 61279400.00 ns, 116.8812 ns/op
|
|
||||||
WorkloadResult 47: 524288 op, 64273200.00 ns, 122.5914 ns/op
|
|
||||||
WorkloadResult 48: 524288 op, 77675600.00 ns, 148.1544 ns/op
|
|
||||||
WorkloadResult 49: 524288 op, 78931700.00 ns, 150.5503 ns/op
|
|
||||||
WorkloadResult 50: 524288 op, 67842500.00 ns, 129.3993 ns/op
|
|
||||||
WorkloadResult 51: 524288 op, 63186300.00 ns, 120.5183 ns/op
|
|
||||||
WorkloadResult 52: 524288 op, 63597800.00 ns, 121.3032 ns/op
|
|
||||||
WorkloadResult 53: 524288 op, 70199700.00 ns, 133.8953 ns/op
|
|
||||||
WorkloadResult 54: 524288 op, 66064100.00 ns, 126.0073 ns/op
|
|
||||||
WorkloadResult 55: 524288 op, 66947700.00 ns, 127.6926 ns/op
|
|
||||||
WorkloadResult 56: 524288 op, 67338400.00 ns, 128.4378 ns/op
|
|
||||||
WorkloadResult 57: 524288 op, 70583500.00 ns, 134.6273 ns/op
|
|
||||||
WorkloadResult 58: 524288 op, 68584700.00 ns, 130.8149 ns/op
|
|
||||||
WorkloadResult 59: 524288 op, 83088900.00 ns, 158.4795 ns/op
|
|
||||||
WorkloadResult 60: 524288 op, 73370000.00 ns, 139.9422 ns/op
|
|
||||||
WorkloadResult 61: 524288 op, 69930800.00 ns, 133.3824 ns/op
|
|
||||||
WorkloadResult 62: 524288 op, 69142900.00 ns, 131.8796 ns/op
|
|
||||||
WorkloadResult 63: 524288 op, 62223100.00 ns, 118.6811 ns/op
|
|
||||||
WorkloadResult 64: 524288 op, 66849600.00 ns, 127.5055 ns/op
|
|
||||||
WorkloadResult 65: 524288 op, 66068500.00 ns, 126.0157 ns/op
|
|
||||||
WorkloadResult 66: 524288 op, 61960100.00 ns, 118.1795 ns/op
|
|
||||||
WorkloadResult 67: 524288 op, 76250400.00 ns, 145.4361 ns/op
|
|
||||||
WorkloadResult 68: 524288 op, 63350200.00 ns, 120.8309 ns/op
|
|
||||||
WorkloadResult 69: 524288 op, 68484500.00 ns, 130.6238 ns/op
|
|
||||||
WorkloadResult 70: 524288 op, 72942500.00 ns, 139.1268 ns/op
|
|
||||||
WorkloadResult 71: 524288 op, 73245000.00 ns, 139.7038 ns/op
|
|
||||||
WorkloadResult 72: 524288 op, 67134000.00 ns, 128.0479 ns/op
|
|
||||||
WorkloadResult 73: 524288 op, 59117100.00 ns, 112.7569 ns/op
|
|
||||||
WorkloadResult 74: 524288 op, 71966600.00 ns, 137.2654 ns/op
|
|
||||||
WorkloadResult 75: 524288 op, 72453100.00 ns, 138.1933 ns/op
|
|
||||||
WorkloadResult 76: 524288 op, 68227100.00 ns, 130.1329 ns/op
|
|
||||||
WorkloadResult 77: 524288 op, 72685400.00 ns, 138.6364 ns/op
|
|
||||||
WorkloadResult 78: 524288 op, 68093200.00 ns, 129.8775 ns/op
|
|
||||||
WorkloadResult 79: 524288 op, 59091700.00 ns, 112.7085 ns/op
|
|
||||||
WorkloadResult 80: 524288 op, 68363900.00 ns, 130.3938 ns/op
|
|
||||||
WorkloadResult 81: 524288 op, 65218400.00 ns, 124.3942 ns/op
|
|
||||||
WorkloadResult 82: 524288 op, 61322800.00 ns, 116.9640 ns/op
|
|
||||||
WorkloadResult 83: 524288 op, 78995300.00 ns, 150.6716 ns/op
|
|
||||||
WorkloadResult 84: 524288 op, 72060700.00 ns, 137.4449 ns/op
|
|
||||||
WorkloadResult 85: 524288 op, 60735100.00 ns, 115.8430 ns/op
|
|
||||||
WorkloadResult 86: 524288 op, 79016200.00 ns, 150.7114 ns/op
|
|
||||||
WorkloadResult 87: 524288 op, 63084700.00 ns, 120.3245 ns/op
|
|
||||||
WorkloadResult 88: 524288 op, 60692400.00 ns, 115.7616 ns/op
|
|
||||||
WorkloadResult 89: 524288 op, 75530400.00 ns, 144.0628 ns/op
|
|
||||||
WorkloadResult 90: 524288 op, 57794000.00 ns, 110.2333 ns/op
|
|
||||||
WorkloadResult 91: 524288 op, 67526000.00 ns, 128.7956 ns/op
|
|
||||||
WorkloadResult 92: 524288 op, 65949100.00 ns, 125.7879 ns/op
|
|
||||||
WorkloadResult 93: 524288 op, 79661800.00 ns, 151.9428 ns/op
|
|
||||||
WorkloadResult 94: 524288 op, 80607200.00 ns, 153.7460 ns/op
|
|
||||||
WorkloadResult 95: 524288 op, 73809100.00 ns, 140.7797 ns/op
|
|
||||||
WorkloadResult 96: 524288 op, 66853700.00 ns, 127.5133 ns/op
|
|
||||||
WorkloadResult 97: 524288 op, 61136300.00 ns, 116.6082 ns/op
|
|
||||||
WorkloadResult 98: 524288 op, 61301100.00 ns, 116.9226 ns/op
|
|
||||||
WorkloadResult 99: 524288 op, 65857800.00 ns, 125.6138 ns/op
|
|
||||||
// GC: 0 0 0 624 524288
|
|
||||||
// Threading: 0 0 524288
|
|
||||||
|
|
||||||
|
|
||||||
Mean = 128.724 ns, StdErr = 1.194 ns (0.93%), N = 99, StdDev = 11.884 ns
|
|
||||||
Min = 108.644 ns, Q1 = 118.660 ns, Median = 127.505 ns, Q3 = 137.341 ns, Max = 158.479 ns
|
|
||||||
IQR = 18.681 ns, LowerFence = 90.639 ns, UpperFence = 165.363 ns
|
|
||||||
ConfidenceInterval = [124.672 ns; 132.776 ns] (CI 99.9%), Margin = 4.052 ns (3.15% of Mean)
|
|
||||||
Skewness = 0.67, Kurtosis = 2.73, MValue = 2.33
|
|
||||||
|
|
||||||
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2026-05-08 18:00 (0h 0m from now) **
|
|
||||||
Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
|
|
||||||
// ***** BenchmarkRunner: Finish *****
|
|
||||||
|
|
||||||
// * Export *
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.csv
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report-github.md
|
|
||||||
BenchmarkDotNet.Artifacts\results\StgSharp.Benchmark.HlsfAllocatorBench-report.html
|
|
||||||
|
|
||||||
// * Detailed results *
|
|
||||||
HlsfAllocatorBench.Hlsf: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 179.943 ns, StdErr = 1.016 ns (0.56%), N = 71, StdDev = 8.560 ns
|
|
||||||
Min = 165.909 ns, Q1 = 172.341 ns, Median = 180.199 ns, Q3 = 184.523 ns, Max = 205.002 ns
|
|
||||||
IQR = 12.182 ns, LowerFence = 154.068 ns, UpperFence = 202.796 ns
|
|
||||||
ConfidenceInterval = [176.454 ns; 183.433 ns] (CI 99.9%), Margin = 3.489 ns (1.94% of Mean)
|
|
||||||
Skewness = 0.69, Kurtosis = 3, MValue = 2.67
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[163.196 ns ; 168.677 ns) | @@
|
|
||||||
[168.677 ns ; 174.103 ns) | @@@@@@@@@@@@@@@@@@@@
|
|
||||||
[174.103 ns ; 179.512 ns) | @@@@@@@@@@@@
|
|
||||||
[179.512 ns ; 184.938 ns) | @@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[184.938 ns ; 191.178 ns) | @@@@@@@@
|
|
||||||
[191.178 ns ; 196.004 ns) | @@@@
|
|
||||||
[196.004 ns ; 201.471 ns) | @@@
|
|
||||||
[201.471 ns ; 207.716 ns) | @
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
HlsfAllocatorBench.Libc: Job-VLPMSV(Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1)
|
|
||||||
Runtime = ; GC =
|
|
||||||
Mean = 128.724 ns, StdErr = 1.194 ns (0.93%), N = 99, StdDev = 11.884 ns
|
|
||||||
Min = 108.644 ns, Q1 = 118.660 ns, Median = 127.505 ns, Q3 = 137.341 ns, Max = 158.479 ns
|
|
||||||
IQR = 18.681 ns, LowerFence = 90.639 ns, UpperFence = 165.363 ns
|
|
||||||
ConfidenceInterval = [124.672 ns; 132.776 ns] (CI 99.9%), Margin = 4.052 ns (3.15% of Mean)
|
|
||||||
Skewness = 0.67, Kurtosis = 2.73, MValue = 2.33
|
|
||||||
-------------------- Histogram --------------------
|
|
||||||
[108.082 ns ; 115.136 ns) | @@@@@@
|
|
||||||
[115.136 ns ; 121.880 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[121.880 ns ; 130.976 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
[130.976 ns ; 140.034 ns) | @@@@@@@@@@@@@@@@@@@
|
|
||||||
[140.034 ns ; 147.578 ns) | @@@
|
|
||||||
[147.578 ns ; 154.322 ns) | @@@@@@@@
|
|
||||||
[154.322 ns ; 161.851 ns) | @@@
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
// * Summary *
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |---------:|--------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 179.9 ns | 3.49 ns | 8.56 ns | 1.41 | 0.14 | - | NA |
|
|
||||||
| Libc | 128.7 ns | 4.05 ns | 11.88 ns | 1.01 | 0.13 | - | NA |
|
|
||||||
|
|
||||||
// * Warnings *
|
|
||||||
MinIterationTime
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 86.985ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> The minimum observed iteration time is 56.961ms which is very small. It's recommended to increase it to at least 100ms using more operations.
|
|
||||||
|
|
||||||
// * Hints *
|
|
||||||
Outliers
|
|
||||||
HlsfAllocatorBench.Hlsf: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 9 outliers were removed (210.04 ns..271.44 ns)
|
|
||||||
HlsfAllocatorBench.Libc: Toolchain=InProcessEmitToolchain, InvocationCount=1, UnrollFactor=1 -> 1 outlier was removed (177.64 ns)
|
|
||||||
|
|
||||||
// * Legends *
|
|
||||||
Mean : Arithmetic mean of all measurements
|
|
||||||
Error : Half of 99.9% confidence interval
|
|
||||||
StdDev : Standard deviation of all measurements
|
|
||||||
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
|
|
||||||
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
|
|
||||||
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
|
|
||||||
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
|
|
||||||
1 ns : 1 Nanosecond (0.000000001 sec)
|
|
||||||
|
|
||||||
// * Diagnostic Output - MemoryDiagnoser *
|
|
||||||
|
|
||||||
|
|
||||||
// ***** BenchmarkRunner: End *****
|
|
||||||
Run time: 00:00:20 (20.49 sec), executed benchmarks: 2
|
|
||||||
|
|
||||||
Global total time: 00:00:21 (21.61 sec), executed benchmarks: 2
|
|
||||||
// * Artifacts cleanup *
|
|
||||||
Artifacts cleanup is finished
|
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
```
|
|
||||||
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
|
|
||||||
Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
|
|
||||||
```
|
|
||||||
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
|
||||||
|------- |---------:|--------:|---------:|------:|--------:|----------:|------------:|
|
|
||||||
| Hlsf | 179.9 ns | 3.49 ns | 8.56 ns | 1.41 | 0.14 | - | NA |
|
|
||||||
| Libc | 128.7 ns | 4.05 ns | 11.88 ns | 1.01 | 0.13 | - | NA |
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Ratio,RatioSD,Allocated,Alloc Ratio
|
|
||||||
Hlsf,Job-VLPMSV,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,179.9 ns,3.49 ns,8.56 ns,1.41,0.14,0 B,NA
|
|
||||||
Libc,Job-VLPMSV,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,InProcessEmitToolchain,Default,1,Default,Default,Default,Default,Default,Default,Default,Default,Default,1,Default,128.7 ns,4.05 ns,11.88 ns,1.01,0.13,0 B,NA
|
|
||||||
|
@@ -1,31 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang='en'>
|
|
||||||
<head>
|
|
||||||
<meta charset='utf-8' />
|
|
||||||
<title>StgSharp.Benchmark.HlsfAllocatorBench-20260508-175952</title>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
|
|
||||||
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
|
|
||||||
tr { background-color: #fff; border-top: 1px solid #ccc; }
|
|
||||||
tr:nth-child(even) { background: #f8f8f8; }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<pre><code>
|
|
||||||
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.8246/25H2/2025Update/HudsonValley2)
|
|
||||||
AMD Ryzen 7 6800H with Radeon Graphics 3.20GHz, 1 CPU, 16 logical and 8 physical cores
|
|
||||||
.NET SDK 10.0.203
|
|
||||||
[Host] : .NET 8.0.26 (8.0.26, 8.0.2626.16921), X64 RyuJIT x86-64-v3
|
|
||||||
</code></pre>
|
|
||||||
<pre><code>Toolchain=InProcessEmitToolchain InvocationCount=1 UnrollFactor=1
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead><tr><th>Method</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Ratio</th><th>RatioSD</th><th>Allocated</th><th>Alloc Ratio</th>
|
|
||||||
</tr>
|
|
||||||
</thead><tbody><tr><td>Hlsf</td><td>179.9 ns</td><td>3.49 ns</td><td>8.56 ns</td><td>1.41</td><td>0.14</td><td>-</td><td>NA</td>
|
|
||||||
</tr><tr><td>Libc</td><td>128.7 ns</td><td>4.05 ns</td><td>11.88 ns</td><td>1.01</td><td>0.13</td><td>-</td><td>NA</td>
|
|
||||||
</tr></tbody></table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -71,7 +71,7 @@ Terminal-based user interface application and components:
|
|||||||
|
|
||||||
- **Parallel Matrix Operations**: Multi-threaded matrix computations with optimized scheduling
|
- **Parallel Matrix Operations**: Multi-threaded matrix computations with optimized scheduling
|
||||||
- **SIMD Acceleration**: Hardware-optimized vector operations
|
- **SIMD Acceleration**: Hardware-optimized vector operations
|
||||||
- **Memory Management**: Custom allocators including HLSF (Hybrid Layer Segregated Fit)
|
- **Memory Management**: Custom allocators including TLSF (Two Layer Segregated Fit)
|
||||||
- **Thread Pool Management**: Efficient task scheduling and execution
|
- **Thread Pool Management**: Efficient task scheduling and execution
|
||||||
|
|
||||||
#### HLSF Benchmark Snapshot (BenchmarkDotNet)
|
#### HLSF Benchmark Snapshot (BenchmarkDotNet)
|
||||||
@@ -212,7 +212,7 @@ allocator.Free(handle);
|
|||||||
|
|
||||||
### Technical Documentation
|
### Technical Documentation
|
||||||
|
|
||||||
- [HLSF Allocator](StgSharp.Common/HighPerformance/Memory/InroductionToHLSF.md) - High-performance memory allocator documentation
|
- [TLSF Allocator](StgSharp.Common/HighPerformance/Memory/InroductionToHLSF.md) - High-performance memory allocator documentation
|
||||||
- [Native Library Naming](StgSharp.Native/naming.md) - Native library file naming conventions
|
- [Native Library Naming](StgSharp.Native/naming.md) - Native library file naming conventions
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[2026-05-13 11:33:26.040] [Info] Program StgSharpDebug, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null on GF-CHEN-LIU Started.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// file="HlsfAllocatorBench"
|
// file="TlsfAllocatorBench"
|
||||||
// Project: StgSharp
|
// Project: StgSharp
|
||||||
// AuthorGroup: Nitload
|
// AuthorGroup: Nitload
|
||||||
// Copyright (c) Nitload. All rights reserved.
|
// Copyright (c) Nitload. All rights reserved.
|
||||||
@@ -31,10 +31,12 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
using Tlsf = StgSharp.HighPerformance.Memory.TwoLayerSegregatedFitAllocator;
|
||||||
|
|
||||||
namespace StgSharp.Benchmark
|
namespace StgSharp.Benchmark
|
||||||
{
|
{
|
||||||
[MemoryDiagnoser]
|
[MemoryDiagnoser]
|
||||||
public class HlsfAllocatorBench
|
public class TlsfAllocatorBench
|
||||||
{
|
{
|
||||||
|
|
||||||
private const uint Alignment = 64;
|
private const uint Alignment = 64;
|
||||||
@@ -55,46 +57,46 @@ namespace StgSharp.Benchmark
|
|||||||
];
|
];
|
||||||
private readonly int[] _freeOrderByBatch = new int[TotalOperationsPerInvoke];
|
private readonly int[] _freeOrderByBatch = new int[TotalOperationsPerInvoke];
|
||||||
private readonly uint[] _requestSizesByBatch = new uint[TotalOperationsPerInvoke];
|
private readonly uint[] _requestSizesByBatch = new uint[TotalOperationsPerInvoke];
|
||||||
private readonly List<HlsfHandle> _hlsfLocalList = new();
|
|
||||||
private readonly List<nint> _libcLocalList = new();
|
private readonly List<nint> _libcLocalList = new();
|
||||||
|
private readonly List<Tlsf.Handle> _tlsfLocalList = new();
|
||||||
private Random _random = new(42);
|
private Random _random = new(42);
|
||||||
private TwoLayerSegregatedFitAllocator _hlsfAllocator = null!;
|
private TwoLayerSegregatedFitAllocator _tlsfAllocator = null!;
|
||||||
|
|
||||||
[GlobalCleanup]
|
[GlobalCleanup]
|
||||||
public void Cleanup()
|
public void Cleanup()
|
||||||
{
|
{
|
||||||
_hlsfAllocator?.Dispose();
|
_tlsfAllocator?.Dispose();
|
||||||
_hlsfLocalList.Clear();
|
_tlsfLocalList.Clear();
|
||||||
_hlsfLocalList.TrimExcess();
|
_tlsfLocalList.TrimExcess();
|
||||||
_libcLocalList.Clear();
|
_libcLocalList.Clear();
|
||||||
_libcLocalList.TrimExcess();
|
_libcLocalList.TrimExcess();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Benchmark(OperationsPerInvoke = TotalOperationsPerInvoke)]
|
[Benchmark(OperationsPerInvoke = TotalOperationsPerInvoke)]
|
||||||
public void Hlsf()
|
public void Tlsf()
|
||||||
{
|
{
|
||||||
for (int batch = 0; batch < BatchCount; batch++) {
|
for (int batch = 0; batch < BatchCount; batch++) {
|
||||||
RunHlsf(batch, _hlsfAllocator, FreePolicy.NoCollect);
|
RunTlsf(batch, _tlsfAllocator, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[IterationCleanup]
|
[IterationCleanup]
|
||||||
public void IterationCleanup()
|
public void IterationCleanup()
|
||||||
{
|
{
|
||||||
_hlsfAllocator?.Dispose();
|
_tlsfAllocator?.Dispose();
|
||||||
_hlsfAllocator = null!;
|
_tlsfAllocator = null!;
|
||||||
_hlsfLocalList.Clear();
|
_tlsfLocalList.Clear();
|
||||||
_libcLocalList.Clear();
|
_libcLocalList.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
[IterationSetup]
|
[IterationSetup]
|
||||||
public void IterationSetup()
|
public void IterationSetup()
|
||||||
{
|
{
|
||||||
_hlsfAllocator?.Dispose();
|
_tlsfAllocator?.Dispose();
|
||||||
_random = new Random(42);
|
_random = new Random(42);
|
||||||
_hlsfAllocator = new TwoLayerSegregatedFitAllocator(GetArenaBytes(), align:(int)Alignment);
|
_tlsfAllocator = new TwoLayerSegregatedFitAllocator(GetArenaBytes(), align:(int)Alignment);
|
||||||
BuildIterationWorkload();
|
BuildIterationWorkload();
|
||||||
_hlsfLocalList.Clear();
|
_tlsfLocalList.Clear();
|
||||||
_libcLocalList.Clear();
|
_libcLocalList.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +137,10 @@ namespace StgSharp.Benchmark
|
|||||||
const int minMb = 64;
|
const int minMb = 64;
|
||||||
int mb = defaultMb;
|
int mb = defaultMb;
|
||||||
|
|
||||||
string? env = Environment.GetEnvironmentVariable("HLSF_BENCH_ARENA_MB");
|
string? env = Environment.GetEnvironmentVariable("TLSF_BENCH_ARENA_MB");
|
||||||
|
if (string.IsNullOrWhiteSpace(env)) {
|
||||||
|
env = Environment.GetEnvironmentVariable("HLSF_BENCH_ARENA_MB");
|
||||||
|
}
|
||||||
if (!string.IsNullOrWhiteSpace(env) &&
|
if (!string.IsNullOrWhiteSpace(env) &&
|
||||||
int.TryParse(env, out int parsed) &&
|
int.TryParse(env, out int parsed) &&
|
||||||
parsed >= minMb) {
|
parsed >= minMb) {
|
||||||
@@ -145,24 +150,24 @@ namespace StgSharp.Benchmark
|
|||||||
return (nuint)mb * 1024u * 1024u;
|
return (nuint)mb * 1024u * 1024u;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunHlsf(
|
private void RunTlsf(
|
||||||
int batch,
|
int batch,
|
||||||
TwoLayerSegregatedFitAllocator allocator,
|
TwoLayerSegregatedFitAllocator allocator,
|
||||||
FreePolicy policy
|
int scanWindow = 4
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int batchOffset = batch * AllocationCount;
|
int batchOffset = batch * AllocationCount;
|
||||||
_hlsfLocalList.Clear();
|
_tlsfLocalList.Clear();
|
||||||
|
|
||||||
for (int i = 0; i < AllocationCount; i++)
|
for (int i = 0; i < AllocationCount; i++)
|
||||||
{
|
{
|
||||||
uint size = _requestSizesByBatch[batchOffset + i];
|
uint size = _requestSizesByBatch[batchOffset + i];
|
||||||
HlsfHandle allocate = allocator.Alloc(size);
|
Tlsf.Handle allocate = allocator.Alloc(size);
|
||||||
_hlsfLocalList.Add(allocate);
|
_tlsfLocalList.Add(allocate);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < _hlsfLocalList.Count; i++) {
|
for (int i = 0; i < _tlsfLocalList.Count; i++) {
|
||||||
allocator.Free(_hlsfLocalList[_freeOrderByBatch[batchOffset + i]], policy);
|
allocator.Free(_tlsfLocalList[_freeOrderByBatch[batchOffset + i]], scanWindow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,5 +34,11 @@ using StgSharp.Benchmark;
|
|||||||
|
|
||||||
IConfig config = ManualConfig.Create(DefaultConfig.Instance)
|
IConfig config = ManualConfig.Create(DefaultConfig.Instance)
|
||||||
.AddLogger(ConsoleLogger.Default)
|
.AddLogger(ConsoleLogger.Default)
|
||||||
.AddJob(Job.Default.WithToolchain(InProcessEmitToolchain.Instance));
|
.AddJob(Job.Default
|
||||||
_ = BenchmarkRunner.Run<HlsfAllocatorBench>(config);
|
.WithToolchain(InProcessEmitToolchain.Instance)
|
||||||
|
.WithLaunchCount(1)
|
||||||
|
.WithWarmupCount(6)
|
||||||
|
.WithIterationCount(15)
|
||||||
|
.WithInvocationCount(3)
|
||||||
|
.WithUnrollFactor(1));
|
||||||
|
_ = BenchmarkRunner.Run<TlsfAllocatorBench>(config);
|
||||||
|
|||||||
@@ -1,137 +0,0 @@
|
|||||||
# HLSF (Hybrid Layer Segregated Fit) Allocator
|
|
||||||
|
|
||||||
A constant-time (O(1)) allocator for real-time, high-throughput scenarios. It uses layered size classes with segmented buckets and stores all metadata externally for clean user memory and better cache locality.
|
|
||||||
|
|
||||||
## Key Points
|
|
||||||
|
|
||||||
- O(1) allocate/free with 10 levels: 64B x 16MB; each level split into 1x/2x/3x segments
|
|
||||||
- External metadata (`Entry`, `BucketNode`) in dedicated SLABs; user blocks have no headers
|
|
||||||
- Configurable alignment (>=16B); maximum block size is configurable at construction time via the `maxBlockSize` parameter (default 32MB, 10 levels). The level array and bucket table are dynamically extended when a larger `maxBlockSize` is specified. There is no implicit fallback to `NativeMemory` for oversized requests.
|
|
||||||
- Single-threaded implementation (external sync required for multi-threaded use)
|
|
||||||
|
|
||||||
## Quick Use
|
|
||||||
|
|
||||||
```csharp
|
|
||||||
using var hlsf = new HybridLayerSegregatedFitAllocator(64 * 1024 * 1024);
|
|
||||||
var h = hlsf.Alloc(1024);
|
|
||||||
Span<byte> s = h.BufferHandle; s[0] = 42;
|
|
||||||
hlsf.Free(h);
|
|
||||||
```
|
|
||||||
|
|
||||||
## Core APIs
|
|
||||||
|
|
||||||
### Alloc(uint size)
|
|
||||||
|
|
||||||
- Purpose: Allocate a block of at least `size` bytes.
|
|
||||||
- Input: `size` in bytes. Must not exceed the `maxBlockSize` configured at construction time (default 32MB). If `size > _maxSize`, an `InvalidOperationException` is thrown.
|
|
||||||
- Output: `HybridLayerSegregatedFitAllocationHandle` with pointer access and `Span<byte>`.
|
|
||||||
- Behavior:
|
|
||||||
- Classify into level/segment and pop a matching bucket; escalate segments and levels if empty.
|
|
||||||
- Fallback to overflow bucket or carve 32MB from spare memory if all buckets are empty.
|
|
||||||
- Mark selected `Entry` as Alloc; slice any remainder into `Empty` entries and push to buckets.
|
|
||||||
- There is no implicit fallback to `NativeMemory.AlignedAlloc` for oversized requests — all allocations are served from the pre-allocated arena. The level array and bucket table are dynamically sized based on the `maxBlockSize` parameter.
|
|
||||||
|
|
||||||
### Free(HybridLayerSegregatedFitAllocationHandle handle)
|
|
||||||
|
|
||||||
- Purpose: Free a previously allocated block.
|
|
||||||
- Behavior:
|
|
||||||
- Mark the corresponding `Entry` as `Empty`.
|
|
||||||
- Merge with adjacent `Empty` entries in both directions (boundary and level constraints).
|
|
||||||
- Remove merged neighbors from buckets, update position chain, and optionally promote level.
|
|
||||||
- Re-enqueue the final `Entry` into the appropriate bucket.
|
|
||||||
|
|
||||||
### Collect()
|
|
||||||
|
|
||||||
- Purpose: Reclaim and rebalance free entries without touching allocated blocks.
|
|
||||||
- Behavior:
|
|
||||||
- Consolidate fragmented regions where possible and improve bucket coverage.
|
|
||||||
- Intended to be cheap; safe to call between benchmark phases.
|
|
||||||
|
|
||||||
### BenchmarkDotNet (HLSF vs Libc)
|
|
||||||
|
|
||||||
Environment: .NET 8.0.23 (Release), x64 RyuJIT AVX2, Windows 11, AMD Ryzen 7 6800H.
|
|
||||||
|
|
||||||
| Method | Mean | StdDev | Ratio | Allocated |
|
|
||||||
|------- |-----:|------:|------:|----------:|
|
|
||||||
| Hlsf | 838.4 µs | 40.6 µs | 1.00 | 64 B |
|
|
||||||
| Libc | 849.8 µs | 100.2 µs | 1.01 | 64 B |
|
|
||||||
|
|
||||||
Interpretation: HLSF matches libc allocation throughput under the same workload, with slightly tighter dispersion in this run.
|
|
||||||
|
|
||||||
> Note: BenchmarkDotNet also warned that the minimum iteration time was under 1ms; for more stable statistics, increase per-iteration work (e.g., higher `AllocationCount`).
|
|
||||||
|
|
||||||
## Detailed Design (summary)
|
|
||||||
-
|
|
||||||
- Size classes: The default level size array is [64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216] (10 levels, 64B × 4^level). When `maxBlockSize` is specified at construction and exceeds the default range, additional levels are appended (each 4× the previous) to cover the requested maximum block size.
|
|
||||||
- Segments per level: 1x, 2x, 3x
|
|
||||||
- Buckets: index = 3 * level + segment (overflow bucket for level > 9)
|
|
||||||
- Metadata: Entry (external SLAB, position chain), BucketNode (user region, bucket chain)
|
|
||||||
- Position chain: circular doubly linked list anchored by spare sentinel
|
|
||||||
- Allocation: search buckets by level/segment with escalation; if none, carve 32MB from spare; set Alloc; slice remainder into buckets
|
|
||||||
- Slicing: align to level boundaries, pack contiguous blocks forward/backward to minimize overhead
|
|
||||||
- Free/Merge: bidirectional merge under boundary and level constraints; update buckets; optional level promotion
|
|
||||||
- Alignment: default 16B; internal blocks aligned by slicing/edge calculation
|
|
||||||
- Complexity: average O(1) with bounded levels and constant-time bucket ops
|
|
||||||
|
|
||||||
- `Entry` (external SLAB): linkage in position chain, `Position`, `Size`, `Level`, `State`
|
|
||||||
- Invariants: near neighbors must form a consistent double-linked ring; `Level` setter validates size vs. level window
|
|
||||||
- `BucketNode` (in user region): `EntryRef`, `NextLevel`, `PreviousLevel`, `IsInBucket`
|
|
||||||
- Position chain: circular doubly linked list anchored by sentinel `_spareMemory` (`State.Spare`)
|
|
||||||
|
|
||||||
### Allocation Flow
|
|
||||||
|
|
||||||
1) Compute `level` and `segment` from requested `size`
|
|
||||||
2) Try pop bucket (`TryPopLevelForAllocation(level, segment, out entry)`) and escalate:
|
|
||||||
- Advance `segment` 0��1��2, then `level++`, until `MaxLevel`
|
|
||||||
- If still empty: try pop from overflow bucket (L=10, seg=1) or `TryAllocateNew32MBBlock`
|
|
||||||
3) On success: bound-check the slice offset; set `entry` to `Alloc` using `SetEntryLevel`
|
|
||||||
4) If remainder exists in the source region, call `SliceMemory(entry->NextNear, remainder)` to produce free chunks into buckets
|
|
||||||
|
|
||||||
### Slicing Logic (`SliceMemory`)
|
|
||||||
|
|
||||||
- Inputs: `next` entry position, `sizeToSlice`
|
|
||||||
- Compute `offset` and `end` relative to base buffer; pick starting level by trailing-zero count of `offset`:
|
|
||||||
- `i = (BitOperations.TrailingZeroCount(offset) - 6) / 2`, clamped to `�� MaxLevel`
|
|
||||||
- Three phases to cover [offset, end):
|
|
||||||
1) Forward levels i..N-1: for each level size `size` and `upper=size*4`, align to `edge=((offset+upper-1)/upper)*upper`, pack `count = ((min(edge,end) - offset) / size)` blocks
|
|
||||||
2) If `i > MaxLevel`: pack in largest upper window on tail
|
|
||||||
3) Backward i-1..0: fill remaining tail with smaller sizes
|
|
||||||
- For each packed region: allocate new `Entry`, insert before `next`, mark `Empty`, and push corresponding `BucketNode` into the `(level, segment)` bucket (`PushBucketToLevel(i, count-1, b)`)
|
|
||||||
|
|
||||||
### Free and Merge (`MergeAndRemoveFromBuckets`)
|
|
||||||
|
|
||||||
- Given an `Entry` to free (turned `Empty` by caller):
|
|
||||||
- Merge left while neighbor `p` is `Empty`, same `Level`, and within boundary (`AssertBoundary`)
|
|
||||||
- Remove `p` from bucket (`RemoveFromBucket`), expand current, fix `Position`, unlink `p`
|
|
||||||
- Merge right with neighbor `n` by the same rule
|
|
||||||
- Optionally promote `Level` if `Size �� levelSizeArray[originLevel] * 4`
|
|
||||||
- Ensure `BucketNode.EntryRef` points to the merged entry; caller re-enqueues into the proper bucket
|
|
||||||
|
|
||||||
### Buckets
|
|
||||||
|
|
||||||
- `PushBucketToLevel(level, segment, node)`: push to bucket head, set `IsInBucket`, maintain prev/next
|
|
||||||
- `TryPopLevel(level, segment, out node)`: pop head; if empty, return false
|
|
||||||
- `RemoveFromBucket(level, segment, node)`: unlink from middle or use `TryPopLevel` if it is the head
|
|
||||||
|
|
||||||
### Large Allocations and Spare Memory
|
|
||||||
|
|
||||||
- Requests exceeding the configured `maxBlockSize` are rejected with `InvalidOperationException`. All allocations are served from the pre-allocated arena.
|
|
||||||
- When all buckets are empty, `TryAllocateNew32MBBlock` carves a region (up to 32MB) from `_spareMemory` to replenish the bucket system, builds an `Empty` entry, and advances the spare pointer
|
|
||||||
|
|
||||||
### Alignment
|
|
||||||
|
|
||||||
- Default `_align = 16`; `AlignOfLevel(level)` returns `min(levelSizeArray[level], _align)`
|
|
||||||
- Internal blocks align to level boundaries by design of slicing/edge calculations
|
|
||||||
|
|
||||||
### Complexity and Invariants
|
|
||||||
|
|
||||||
- Allocate/free are O(1) on average with bounded levels (��10) and constant-time bucket ops
|
|
||||||
- Invariants guarded by exceptions (e.g., `HLSFPositionChainBreakException`) and pointer consistency checks
|
|
||||||
|
|
||||||
## Profiling (hotspots, current workloads)
|
|
||||||
|
|
||||||
- SliceMemory ~22% (self ~17%) �� slicing and bucket enqueue dominate allocation path
|
|
||||||
- MergeAndRemoveFromBuckets ~13% (self ~12%) �� merge + removal dominate free path
|
|
||||||
- Collect ~7.6% (self ~7.5%) �� low overall cost
|
|
||||||
|
|
||||||
Focus: reduce per-slice math and bucket ops; add fast-paths for aligned regions; batch/lazy removals after merges.
|
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
# TLSF (Two-Layer Segregated Fit) Allocator
|
||||||
|
|
||||||
|
This document describes the current StgSharp native arena allocator, `StgSharp.HighPerformance.Memory.TwoLayerSegregatedFitAllocator`. The file name is historical; the implementation described below is TLSF rather than the older HLSF allocator.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
- Single contiguous native arena allocated up front
|
||||||
|
- Headerless returned blocks; allocator metadata is stored in 32-byte nodes carved from the tail of the same arena
|
||||||
|
- Requests rounded up to 64-byte granularity, with 64 bytes as the minimum block size
|
||||||
|
- Free blocks grouped by coarse size level derived from the highest set bit of the block size
|
||||||
|
- Exact-level allocation uses first-fit traversal inside the selected bucket; higher levels fall back to the head of the first non-empty bucket
|
||||||
|
- `Free` performs bounded local coalescing; `Collect` performs full free-run coalescing across the arena
|
||||||
|
- Single-threaded implementation; concurrent access requires external synchronization
|
||||||
|
- No arena growth and no implicit fallback to `NativeMemory.AlignedAlloc` for oversized requests
|
||||||
|
|
||||||
|
## Quick Use
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using StgSharp.HighPerformance.Memory;
|
||||||
|
|
||||||
|
using var tlsf = new TwoLayerSegregatedFitAllocator(64 * 1024 * 1024);
|
||||||
|
var handle = tlsf.Alloc(1024);
|
||||||
|
|
||||||
|
Span<byte> buffer = handle.AsSpan();
|
||||||
|
buffer[0] = 42;
|
||||||
|
|
||||||
|
tlsf.Free(handle);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Constructors
|
||||||
|
|
||||||
|
- `TwoLayerSegregatedFitAllocator(nuint byteSize)`
|
||||||
|
- `TwoLayerSegregatedFitAllocator(nuint byteSize, uint maxBlockSize)`
|
||||||
|
- `TwoLayerSegregatedFitAllocator(nuint byteSize, int align)`
|
||||||
|
- `TwoLayerSegregatedFitAllocator(nuint byteSize, int align, nuint maxBlockSize)`
|
||||||
|
|
||||||
|
Behavior summary:
|
||||||
|
|
||||||
|
- `byteSize` defines the total arena size
|
||||||
|
- `maxBlockSize` defaults to 32 MB and defines the largest single request accepted by `Alloc` and `TryAlloc`
|
||||||
|
- `align` is passed to the backing `NativeMemory.AlignedAlloc` call for arena allocation; request sizes inside the arena are still quantized to 64-byte blocks
|
||||||
|
|
||||||
|
## Public API
|
||||||
|
|
||||||
|
### `Alloc(nuint size)`
|
||||||
|
|
||||||
|
- Rounds `size` up to the next 64-byte block, with a minimum of 64 bytes
|
||||||
|
- Throws `OverflowException` if the normalized size exceeds `maxBlockSize` or if the arena cannot provide a block
|
||||||
|
- Returns a `Handle` containing block address and block size
|
||||||
|
- Splits a sufficiently large tail remainder into a new free node and re-buckets that node
|
||||||
|
|
||||||
|
### `TryAlloc(nuint size, out Handle handle)`
|
||||||
|
|
||||||
|
- Uses the same size normalization and maximum block limit as `Alloc`
|
||||||
|
- Returns `false` when the request exceeds the configured limit or when the arena is exhausted
|
||||||
|
- Does not fall back to the system allocator
|
||||||
|
|
||||||
|
### `Free(Handle handle, int collectScanWindow = 4)`
|
||||||
|
|
||||||
|
- Marks the block as free
|
||||||
|
- Scans up to `collectScanWindow` neighbors toward lower addresses and then up to `collectScanWindow` neighbors toward higher addresses
|
||||||
|
- Merges any contiguous free neighbors found during those scans
|
||||||
|
- Reclassifies the merged block back into the coarse bucket set
|
||||||
|
|
||||||
|
### `Collect()`
|
||||||
|
|
||||||
|
- Walks the full position chain from low address to high address
|
||||||
|
- Merges consecutive free runs without the local scan-window limit used by `Free`
|
||||||
|
- Restores larger reusable spans and improves bucket coverage after fragmentation-heavy phases
|
||||||
|
|
||||||
|
### `Dispose()`
|
||||||
|
|
||||||
|
- Releases the backing arena through the stored free callback
|
||||||
|
|
||||||
|
### `Handle`
|
||||||
|
|
||||||
|
- Readonly value type carrying the allocator metadata reference, block address, and block size
|
||||||
|
- `Address` exposes the native pointer
|
||||||
|
- `Size` exposes the normalized block size
|
||||||
|
- `AsSpan(int range = -1)` exposes a span view over the block
|
||||||
|
- The indexer provides byte-level access by offset
|
||||||
|
|
||||||
|
## Allocation Model
|
||||||
|
|
||||||
|
### Level Classification
|
||||||
|
|
||||||
|
- `GetLevel(size)` maps the normalized size to `57 - BitOperations.LeadingZeroCount(size)` and clamps the result to `_maxLevel`
|
||||||
|
- Each bucket corresponds to one coarse size class rather than an exact size
|
||||||
|
- The target bucket can therefore contain blocks of different sizes within the same coarse level
|
||||||
|
|
||||||
|
### Allocation Path
|
||||||
|
|
||||||
|
1. Normalize the requested size to a 64-byte multiple.
|
||||||
|
2. Traverse the target bucket and select the first free block whose size is at least the requested size.
|
||||||
|
3. If the target bucket has no suitable block, pop the head of the first non-empty higher-level bucket.
|
||||||
|
4. If all buckets are empty, carve a fresh block from the spare region tracked by the arena sentinel.
|
||||||
|
5. Split the tail remainder when both remainder size and metadata availability allow it.
|
||||||
|
|
||||||
|
### Metadata Layout
|
||||||
|
|
||||||
|
- `Metadata` is a 32-byte node
|
||||||
|
- `NextNear` and `PreviousNear` form the address-ordered position chain
|
||||||
|
- `NextLevel` and `PreviousLevel` form either the bucket chain or the recycled-metadata chain, depending on node state
|
||||||
|
- The spare sentinel at the end of the arena tracks remaining virgin space, recycled metadata nodes, and position-chain anchors
|
||||||
|
- Returned blocks remain headerless from the caller's point of view
|
||||||
|
|
||||||
|
### Coalescing Model
|
||||||
|
|
||||||
|
- `Free` performs bounded local coalescing to keep the hot path short
|
||||||
|
- `Collect` performs full coalescing of consecutive free runs across the entire position chain
|
||||||
|
- Recycled metadata nodes are returned to the spare metadata list and reused by later splits or fresh arena chunks
|
||||||
|
|
||||||
|
## Complexity and Runtime Characteristics
|
||||||
|
|
||||||
|
- `Alloc`: O(1) bucket index calculation plus target-level first-fit traversal; higher-level fallback is O(1)
|
||||||
|
- `Free`: O(`collectScanWindow`) local merge cost
|
||||||
|
- `Collect`: O(number of metadata nodes in the position chain)
|
||||||
|
- Best steady-state behavior appears on repeated small and medium native allocations inside a pre-allocated arena
|
||||||
|
|
||||||
|
## BenchmarkDotNet (TLSF vs Libc)
|
||||||
|
|
||||||
|
Environment: .NET 8.0.26 (PerformanceDebug), x64 RyuJIT AVX2, Windows 11, AMD Ryzen 7 6800H, BenchmarkDotNet v0.15.8, InProcessEmitToolchain, LaunchCount=1, WarmupCount=6, IterationCount=15, InvocationCount=3.
|
||||||
|
|
||||||
|
Workload summary:
|
||||||
|
|
||||||
|
- Arena size: 512 MB
|
||||||
|
- Arena alignment: 64 bytes
|
||||||
|
- Allocation count per batch: 2048
|
||||||
|
- Batch count: 256
|
||||||
|
- Request set before normalization: 64, 100, 200, 400, 1024, 4096 bytes
|
||||||
|
- Free order: shuffled per batch
|
||||||
|
- `Free` local merge window: 4
|
||||||
|
|
||||||
|
Best observed run under the current harness:
|
||||||
|
|
||||||
|
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
||||||
|
|------- |-----:|------:|-------:|------:|--------:|----------:|------------:|
|
||||||
|
| Tlsf | 79.11 ns | 5.944 ns | 5.560 ns | 0.65 | 0.09 | - | NA |
|
||||||
|
| Libc | 123.64 ns | 15.955 ns | 14.144 ns | 1.01 | 0.16 | - | NA |
|
||||||
|
|
||||||
|
Worst observed run under the same harness:
|
||||||
|
|
||||||
|
| Method | Mean | Error | StdDev | Ratio | RatioSD | Allocated | Alloc Ratio |
|
||||||
|
|------- |-----:|------:|-------:|------:|--------:|----------:|------------:|
|
||||||
|
| Tlsf | 82.95 ns | 6.337 ns | 5.617 ns | 0.81 | 0.07 | - | NA |
|
||||||
|
| Libc | 102.63 ns | 8.590 ns | 7.173 ns | 1.00 | 0.09 | - | NA |
|
||||||
|
|
||||||
|
Interpretation:
|
||||||
|
|
||||||
|
- The current single-pass bucket selection fast path materially reduces allocator-side latency
|
||||||
|
- The reported ratio still drifts across repeated compile-and-run cycles because the libc baseline also moves under the current InProcess harness
|
||||||
|
- Recent repeated runs place the transient best case near 0.65 and the longer-running steady band near 0.75 to 0.80
|
||||||
|
|
||||||
|
## Operational Notes
|
||||||
|
|
||||||
|
- Maximum single-allocation size is fixed at construction time
|
||||||
|
- Arena growth is not implemented
|
||||||
|
- `Collect` is the global defragmentation pass; `Free` only performs bounded local coalescing
|
||||||
|
- The allocator is intended for explicit native-memory workflows rather than as a drop-in general-purpose heap replacement
|
||||||
@@ -29,6 +29,7 @@ using StgSharp.HighPerformance.Memory;
|
|||||||
using StgSharp.HighPerformance.ProcessorAbstraction;
|
using StgSharp.HighPerformance.ProcessorAbstraction;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
@@ -36,6 +37,7 @@ using System.Reflection.Metadata;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Xml;
|
||||||
using static StgSharp.HighPerformance.Memory.TwoLayerSegregatedFitAllocator;
|
using static StgSharp.HighPerformance.Memory.TwoLayerSegregatedFitAllocator;
|
||||||
|
|
||||||
namespace StgSharp.HighPerformance.Memory
|
namespace StgSharp.HighPerformance.Memory
|
||||||
@@ -162,64 +164,109 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
Metadata* node
|
Metadata* node
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
int nextIdx = _spareMemory->NextLevel;
|
|
||||||
int nodeIdx = (int)(_spareMemory - node);
|
int nodeIdx = (int)(_spareMemory - node);
|
||||||
int level = GetLevel(node->Size);
|
int level = GetLevel(node->Size);
|
||||||
Metadata* next = &_spareMemory[-nextIdx];
|
|
||||||
|
|
||||||
int nextLevelIdx = node->NextLevel;
|
int nextLevelIdx = node->NextLevel;
|
||||||
int prevLevelIdx = node->PreviousLevel;
|
int prevLevelIdx = node->PreviousLevel;
|
||||||
if (nextIdx == 0)
|
RemoveFromBucket(level, node, nodeIdx);
|
||||||
{
|
|
||||||
_spareMemory->NextLevel = nodeIdx;
|
|
||||||
node->NextLevel = 0;
|
|
||||||
return;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
// add to free list
|
|
||||||
next->PreviousLevel = nodeIdx;
|
|
||||||
_spareMemory->NextLevel = nodeIdx;
|
|
||||||
node->NextLevel = nextIdx;
|
|
||||||
node->PreviousLevel = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove from position chain
|
// remove from position chain
|
||||||
int prevNearIdx = node->PreviousNear;
|
int prevNearIdx = node->PreviousNear;
|
||||||
int nextNearIdx = node->NextNear;
|
int nextNearIdx = node->NextNear;
|
||||||
Metadata* prevNear = &_spareMemory[-prevNearIdx];
|
Metadata* prevNear = &_spareMemory[-prevNearIdx];
|
||||||
Metadata* nextNear = &_spareMemory[-nextNearIdx];
|
|
||||||
prevNear->NextNear = nextNearIdx;
|
prevNear->NextNear = nextNearIdx;
|
||||||
|
if (nextNearIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* nextNear = &_spareMemory[-nextNearIdx];
|
||||||
nextNear->PreviousNear = prevNearIdx;
|
nextNear->PreviousNear = prevNearIdx;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
_spareMemory->PreviousNear = prevNearIdx;
|
||||||
|
}
|
||||||
node->PreviousNear = 0;
|
node->PreviousNear = 0;
|
||||||
node->NextNear = 0;
|
node->NextNear = 0;
|
||||||
|
|
||||||
node->Position = 0;
|
node->Position = 0;
|
||||||
node->SizeForSpare = 0;
|
node->SizeForSpare = 0;
|
||||||
|
node->State = AllocationState.SpareOrCollect;
|
||||||
|
node->PreviousLevel = 0;
|
||||||
|
|
||||||
// remove from level bucket
|
int nextIdx = _spareMemory->NextLevel;
|
||||||
if (_bucket[level] == nodeIdx)
|
if (nextIdx != 0)
|
||||||
{
|
{
|
||||||
_bucket[level] = nextLevelIdx;
|
Metadata* next = &_spareMemory[-nextIdx];
|
||||||
if (nextLevelIdx != 0)
|
next->PreviousLevel = nodeIdx;
|
||||||
{
|
|
||||||
Metadata* nextLevel = &_spareMemory[-nextLevelIdx];
|
|
||||||
nextLevel->PreviousLevel = 0;
|
|
||||||
}
|
}
|
||||||
} else
|
node->NextLevel = nextIdx;
|
||||||
{
|
_spareMemory->NextLevel = nodeIdx;
|
||||||
if (nextLevelIdx != 0)
|
|
||||||
{
|
|
||||||
Metadata* nextLevel = &_spareMemory[-nextLevelIdx];
|
|
||||||
nextLevel->PreviousLevel = prevLevelIdx;
|
|
||||||
}
|
}
|
||||||
if (prevLevelIdx != 0)
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
private void RemoveFromBucket(
|
||||||
|
Metadata* node,
|
||||||
|
int nodeIdx
|
||||||
|
)
|
||||||
{
|
{
|
||||||
Metadata* prevLevel = &_spareMemory[-prevLevelIdx];
|
RemoveFromBucket(GetLevel(node->Size), node, nodeIdx);
|
||||||
prevLevel->NextLevel = nextLevelIdx;
|
}
|
||||||
|
|
||||||
|
private void RemoveFromBucket(
|
||||||
|
int level,
|
||||||
|
Metadata* node,
|
||||||
|
int nodeIdx
|
||||||
|
)
|
||||||
|
{
|
||||||
|
int currentLevel = level;
|
||||||
|
int currentNextLevelIdx = node->NextLevel;
|
||||||
|
int currentPrevLevelIdx = node->PreviousLevel;
|
||||||
|
|
||||||
|
if (_bucket[currentLevel] == nodeIdx)
|
||||||
|
{
|
||||||
|
_bucket[currentLevel] = currentNextLevelIdx;
|
||||||
|
} else if (currentPrevLevelIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* prevLevel = &_spareMemory[-currentPrevLevelIdx];
|
||||||
|
prevLevel->NextLevel = currentNextLevelIdx;
|
||||||
|
}
|
||||||
|
if (currentNextLevelIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* nextLevel = &_spareMemory[-currentNextLevelIdx];
|
||||||
|
nextLevel->PreviousLevel = currentPrevLevelIdx;
|
||||||
}
|
}
|
||||||
node->PreviousLevel = 0;
|
node->PreviousLevel = 0;
|
||||||
node->NextLevel = 0;
|
node->NextLevel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Assuming node to remove is head f bucket
|
||||||
|
private void RemoveFromBucketHead(
|
||||||
|
int level,
|
||||||
|
Metadata* node,
|
||||||
|
int nodeIdx
|
||||||
|
)
|
||||||
|
{
|
||||||
|
int currentLevel = level;
|
||||||
|
int currentNextLevelIdx = node->NextLevel;
|
||||||
|
|
||||||
|
// int currentPrevLevelIdx = 0;
|
||||||
|
|
||||||
|
if (_bucket[currentLevel] == nodeIdx)
|
||||||
|
{
|
||||||
|
_bucket[currentLevel] = currentNextLevelIdx;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
else if (currentPrevLevelIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* prevLevel = &_spareMemory[-currentPrevLevelIdx];
|
||||||
|
prevLevel->NextLevel = currentNextLevelIdx;
|
||||||
|
}
|
||||||
|
/**/
|
||||||
|
if (currentNextLevelIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* nextLevel = &_spareMemory[-currentNextLevelIdx];
|
||||||
|
nextLevel->PreviousLevel = 0;
|
||||||
|
}
|
||||||
|
node->PreviousLevel = 0;
|
||||||
|
node->NextLevel = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool TryAllocNewChunk(
|
private bool TryAllocNewChunk(
|
||||||
@@ -228,34 +275,49 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
int idx = _spareMemory->NextLevel;
|
int idx = _spareMemory->NextLevel;
|
||||||
|
ulong spareSize = _spareMemory->Size;
|
||||||
if (idx != 0)
|
if (idx != 0)
|
||||||
{
|
{
|
||||||
|
if (spareSize < size)
|
||||||
|
{
|
||||||
|
meta = null;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
meta = &_spareMemory[-idx];
|
meta = &_spareMemory[-idx];
|
||||||
_spareMemory->NextLevel = meta->NextLevel;
|
int nextSpareIdx = meta->NextLevel;
|
||||||
|
if (nextSpareIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* nextSpare = &_spareMemory[-nextSpareIdx];
|
||||||
|
nextSpare->PreviousLevel = 0;
|
||||||
|
}
|
||||||
|
_spareMemory->NextLevel = nextSpareIdx;
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
_metadataEnd++;
|
|
||||||
meta = &_spareMemory[-_metadataEnd];
|
|
||||||
|
|
||||||
// TODO: correctly set position and size for new chunk
|
|
||||||
}
|
|
||||||
ulong spareSize = _spareMemory->Size;
|
|
||||||
if (spareSize < Metadata.SizeOf + size)
|
if (spareSize < Metadata.SizeOf + size)
|
||||||
{
|
{
|
||||||
meta = null;
|
meta = null;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
spareSize -= Metadata.SizeOf + size;
|
_metadataEnd++;
|
||||||
|
idx = _metadataEnd;
|
||||||
|
meta = &_spareMemory[-idx];
|
||||||
|
spareSize -= Metadata.SizeOf;
|
||||||
|
}
|
||||||
|
spareSize -= size;
|
||||||
|
meta->Size = size;
|
||||||
|
meta->Position = _spareMemory->Position;
|
||||||
|
meta->State = AllocationState.Free;
|
||||||
|
meta->PreviousLevel = 0;
|
||||||
|
meta->NextLevel = 0;
|
||||||
_spareMemory->Size = spareSize;
|
_spareMemory->Size = spareSize;
|
||||||
_spareMemory->Position += size;
|
_spareMemory->Position += size;
|
||||||
meta->Size = size;
|
|
||||||
|
|
||||||
// insert the new chunk to position chain
|
// insert the new chunk to position chain
|
||||||
int nearIdx = _spareMemory->PreviousNear;
|
int nearIdx = _spareMemory->PreviousNear;
|
||||||
Metadata* near = &_spareMemory[-nearIdx];
|
Metadata* near = &_spareMemory[-nearIdx];
|
||||||
near->NextNear = _metadataEnd;
|
near->NextNear = idx;
|
||||||
meta->PreviousNear = nearIdx;
|
meta->PreviousNear = nearIdx;
|
||||||
_spareMemory->PreviousNear = _metadataEnd;
|
_spareMemory->PreviousNear = idx;
|
||||||
meta->NextNear = 0;
|
meta->NextNear = 0;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -277,6 +339,44 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool TryTakeBucketEntry(
|
||||||
|
ulong minimumSize,
|
||||||
|
out Metadata* entry
|
||||||
|
)
|
||||||
|
{
|
||||||
|
int level = GetLevel(minimumSize);
|
||||||
|
|
||||||
|
// first try to find in the target level
|
||||||
|
{
|
||||||
|
int idx = _bucket[level];
|
||||||
|
while (idx != 0)
|
||||||
|
{
|
||||||
|
Metadata* candidate = &_spareMemory[-idx];
|
||||||
|
if (candidate->Size >= minimumSize)
|
||||||
|
{
|
||||||
|
RemoveFromBucket(level, candidate, idx);
|
||||||
|
entry = candidate;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
idx = candidate->NextLevel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = level + 1; i < _bucket.Length; i++)
|
||||||
|
{
|
||||||
|
int idx = _bucket[i];
|
||||||
|
if (idx != 0)
|
||||||
|
{
|
||||||
|
Metadata* candidate = &_spareMemory[-idx];
|
||||||
|
RemoveFromBucketHead(i, candidate, idx);
|
||||||
|
entry = candidate;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
entry = null;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Explicit)]
|
[StructLayout(LayoutKind.Explicit)]
|
||||||
public readonly struct Handle
|
public readonly struct Handle
|
||||||
{
|
{
|
||||||
@@ -324,8 +424,8 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
internal struct Metadata
|
internal struct Metadata
|
||||||
{
|
{
|
||||||
|
|
||||||
[FieldOffset(24)] private ulong PositionMask;
|
[FieldOffset(16)] private ulong PositionMask;
|
||||||
[FieldOffset(16)] private ulong SizeMask;
|
[FieldOffset(24)] private ulong SizeMask;
|
||||||
|
|
||||||
[FieldOffset(30)] internal AllocationState State;
|
[FieldOffset(30)] internal AllocationState State;
|
||||||
[FieldOffset(31)] internal sbyte Level;
|
[FieldOffset(31)] internal sbyte Level;
|
||||||
@@ -367,23 +467,15 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
if (allocSize > _maxAllocSize) {
|
if (allocSize > _maxAllocSize) {
|
||||||
throw new OverflowException("Requested allocation size exceeds the maximum block size.");
|
throw new OverflowException("Requested allocation size exceeds the maximum block size.");
|
||||||
}
|
}
|
||||||
int level = GetLevel(allocSize);
|
if (!TryTakeBucketEntry(allocSize, out Metadata* entry) &&
|
||||||
Metadata* entry = null;
|
!TryAllocNewChunk(allocSize, out entry)) {
|
||||||
for (int i = level; i < _bucket.Length; i++)
|
|
||||||
{
|
|
||||||
int idx = _bucket[i];
|
|
||||||
if (idx != 0)
|
|
||||||
{
|
|
||||||
entry = &_spareMemory[-idx];
|
|
||||||
_bucket[i] = entry->NextLevel;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (entry is null && !TryAllocNewChunk(allocSize, out entry)) {
|
|
||||||
throw new OverflowException("No available ");
|
throw new OverflowException("No available ");
|
||||||
}
|
}
|
||||||
int entryIdx = (int)(_spareMemory - entry);
|
int entryIdx = (int)(_spareMemory - entry);
|
||||||
ulong entrySize = entry->Size;
|
ulong entrySize = entry->Size;
|
||||||
|
if (entrySize < allocSize) {
|
||||||
|
throw new OverflowException("Bucket returned an undersized block.");
|
||||||
|
}
|
||||||
ulong remain = entrySize - allocSize;
|
ulong remain = entrySize - allocSize;
|
||||||
|
|
||||||
// slice tail
|
// slice tail
|
||||||
@@ -392,18 +484,17 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
int newEntryIdx = (int)(_spareMemory - newEntry);
|
int newEntryIdx = (int)(_spareMemory - newEntry);
|
||||||
newEntry->Position = entry->Position + allocSize;
|
newEntry->Position = entry->Position + allocSize;
|
||||||
newEntry->Size = remain;
|
newEntry->Size = remain;
|
||||||
|
newEntry->State = AllocationState.Free;
|
||||||
int newLevel = GetLevel(remain);
|
int newLevel = GetLevel(remain);
|
||||||
int bucketHeadIdx = _bucket[newLevel];
|
int bucketHeadIdx = _bucket[newLevel];
|
||||||
if (bucketHeadIdx != 0)
|
if (bucketHeadIdx != 0)
|
||||||
{
|
{
|
||||||
// if there is already an entry in the bucket, link it to the new entry
|
// if there is already an entry in the bucket, link it to the new entry
|
||||||
Metadata* bucketHead = &_spareMemory[-bucketHeadIdx];
|
Metadata* bucketHead = &_spareMemory[-bucketHeadIdx];
|
||||||
newEntry->NextLevel = bucketHeadIdx;
|
|
||||||
bucketHead->PreviousLevel = newEntryIdx;
|
bucketHead->PreviousLevel = newEntryIdx;
|
||||||
} else
|
|
||||||
{
|
|
||||||
newEntry->NextLevel = 0;
|
|
||||||
}
|
}
|
||||||
|
newEntry->NextLevel = bucketHeadIdx;
|
||||||
|
|
||||||
newEntry->PreviousLevel = 0;
|
newEntry->PreviousLevel = 0;
|
||||||
_bucket[newLevel] = newEntryIdx;
|
_bucket[newLevel] = newEntryIdx;
|
||||||
|
|
||||||
@@ -416,6 +507,9 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
newEntry->PreviousNear = entryIdx;
|
newEntry->PreviousNear = entryIdx;
|
||||||
}
|
}
|
||||||
entry->State = AllocationState.Alloc;
|
entry->State = AllocationState.Alloc;
|
||||||
|
if (entry->Position - (ulong)_basePtr > _totalSize) {
|
||||||
|
throw new OverflowException("Allocated memory address exceeds the maximum block size.");
|
||||||
|
}
|
||||||
return new Handle(entry, _basePtr);
|
return new Handle(entry, _basePtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -431,17 +525,34 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
Metadata* current = &_spareMemory[-currentIdx];
|
Metadata* current = &_spareMemory[-currentIdx];
|
||||||
if (current->State == AllocationState.Free)
|
if (current->State == AllocationState.Free)
|
||||||
{
|
{
|
||||||
|
// scan next
|
||||||
Ptr64 size = 0;
|
Ptr64 size = 0;
|
||||||
int nextIdx = current->NextNear;
|
int nextIdx = current->NextNear;
|
||||||
Metadata* next = &_spareMemory[-nextIdx];
|
while (nextIdx != 0)
|
||||||
while (nextIdx != 0 && next->State != AllocationState.Free)
|
|
||||||
{
|
{
|
||||||
|
Metadata* next = &_spareMemory[-nextIdx];
|
||||||
|
if (next->State != AllocationState.Free)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
size += next->Size;
|
size += next->Size;
|
||||||
RecycleNode(next);
|
RecycleNode(next);
|
||||||
nextIdx = next->NextNear;
|
nextIdx = current->NextNear;
|
||||||
}
|
}
|
||||||
if (size > 0) {
|
if (size > 0)
|
||||||
|
{
|
||||||
current->Size += size;
|
current->Size += size;
|
||||||
|
RemoveFromBucket(current, currentIdx);
|
||||||
|
int newLevel = GetLevel(current->Size);
|
||||||
|
int bucketHeadIdx = _bucket[newLevel];
|
||||||
|
if (bucketHeadIdx != 0)
|
||||||
|
{
|
||||||
|
Metadata* bucketHead = &_spareMemory[-bucketHeadIdx];
|
||||||
|
bucketHead->PreviousLevel = currentIdx;
|
||||||
|
}
|
||||||
|
current->NextLevel = bucketHeadIdx;
|
||||||
|
current->PreviousLevel = 0;
|
||||||
|
_bucket[newLevel] = currentIdx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
currentIdx = current->NextNear;
|
currentIdx = current->NextNear;
|
||||||
@@ -493,8 +604,10 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
// recycle to level;
|
// recycle to level;
|
||||||
head->Size = size;
|
head->Size = size;
|
||||||
head->State = AllocationState.Free;
|
head->State = AllocationState.Free;
|
||||||
|
head->PreviousLevel = 0;
|
||||||
int level = GetLevel(head->Size);
|
int level = GetLevel(head->Size);
|
||||||
int bucketHeadIdx = _bucket[level];
|
int bucketHeadIdx = _bucket[level];
|
||||||
|
head->NextLevel = 0;
|
||||||
if (bucketHeadIdx != 0)
|
if (bucketHeadIdx != 0)
|
||||||
{
|
{
|
||||||
Metadata* bucketHead = &_spareMemory[-bucketHeadIdx];
|
Metadata* bucketHead = &_spareMemory[-bucketHeadIdx];
|
||||||
@@ -516,25 +629,19 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
h = default;
|
h = default;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int level = GetLevel(allocSize);
|
if (!TryTakeBucketEntry(allocSize, out Metadata* entry) &&
|
||||||
Metadata* entry = null;
|
!TryAllocNewChunk(allocSize, out entry))
|
||||||
for (int i = level; i < _bucket.Length; i++)
|
|
||||||
{
|
|
||||||
int idx = _bucket[i];
|
|
||||||
if (idx != 0)
|
|
||||||
{
|
|
||||||
entry = &_spareMemory[-idx];
|
|
||||||
_bucket[i] = entry->NextLevel;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (entry is null && !TryAllocNewChunk(allocSize, out entry))
|
|
||||||
{
|
{
|
||||||
h = default;
|
h = default;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int entryIdx = (int)(_spareMemory - entry);
|
int entryIdx = (int)(_spareMemory - entry);
|
||||||
ulong entrySize = entry->Size;
|
ulong entrySize = entry->Size;
|
||||||
|
if (entrySize < allocSize)
|
||||||
|
{
|
||||||
|
h = default;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
ulong remain = entrySize - allocSize;
|
ulong remain = entrySize - allocSize;
|
||||||
|
|
||||||
// slice tail
|
// slice tail
|
||||||
@@ -543,6 +650,7 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
int newEntryIdx = (int)(_spareMemory - newEntry);
|
int newEntryIdx = (int)(_spareMemory - newEntry);
|
||||||
newEntry->Position = entry->Position + allocSize;
|
newEntry->Position = entry->Position + allocSize;
|
||||||
newEntry->Size = remain;
|
newEntry->Size = remain;
|
||||||
|
newEntry->State = AllocationState.Free;
|
||||||
int newLevel = GetLevel(remain);
|
int newLevel = GetLevel(remain);
|
||||||
int bucketHeadIdx = _bucket[newLevel];
|
int bucketHeadIdx = _bucket[newLevel];
|
||||||
if (bucketHeadIdx != 0)
|
if (bucketHeadIdx != 0)
|
||||||
@@ -566,6 +674,12 @@ namespace StgSharp.HighPerformance.Memory
|
|||||||
entry->NextNear = newEntryIdx;
|
entry->NextNear = newEntryIdx;
|
||||||
newEntry->PreviousNear = entryIdx;
|
newEntry->PreviousNear = entryIdx;
|
||||||
}
|
}
|
||||||
|
entry->State = AllocationState.Alloc;
|
||||||
|
if (entry->Position - (ulong)_basePtr > _totalSize)
|
||||||
|
{
|
||||||
|
h = default;
|
||||||
|
throw new OverflowException("Allocated memory address exceeds the maximum block size.");
|
||||||
|
}
|
||||||
h = new Handle(entry, _basePtr);
|
h = new Handle(entry, _basePtr);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ namespace StgSharp
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Tlsf.Handle> list = new List<Tlsf.Handle>((int)ops);
|
List<Tlsf.Handle> list = new List<Tlsf.Handle>((int)ops);
|
||||||
|
|
||||||
Stopwatch sw = Stopwatch.StartNew();
|
Stopwatch sw = Stopwatch.StartNew();
|
||||||
for (long i = 0; i < ops; i++)
|
for (long i = 0; i < ops; i++)
|
||||||
{
|
{
|
||||||
@@ -173,8 +174,9 @@ namespace StgSharp
|
|||||||
|
|
||||||
// Console.WriteLine(i);
|
// Console.WriteLine(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
sw.Stop();
|
sw.Stop();
|
||||||
double allocOpsPerSec = ops / sw.Elapsed.TotalSeconds;
|
double allocOpsPerSec = /**/ ops / sw.Elapsed.TotalSeconds/**/;
|
||||||
foreach (Tlsf.Handle h in list) {
|
foreach (Tlsf.Handle h in list) {
|
||||||
allocator.Free(h);
|
allocator.Free(h);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user