Skip to content

Commit 1d74e10

Browse files
author
Vyacheslav
committed
feat: rewrite bench
1 parent 7d5e139 commit 1d74e10

File tree

5 files changed

+59
-49
lines changed

5 files changed

+59
-49
lines changed

Src/Benchmarks/List/Optimal/ClassOptimalJob.cs

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,21 @@ public void StackMemory()
1818
{
1919
using (var memory = new StackMemoryCollections.Struct.StackMemory(JobClassHelper.SizeOf * (nuint)Size))
2020
{
21-
using var item = new Benchmark.Struct.JobClassWrapper();
22-
var js2W = new Benchmark.Struct.JobClass2Wrapper(item.JobClass2Ptr, false);
21+
var item = new Benchmark.Struct.JobClassWrapper(memory.Start, false);
22+
var js2W = new Benchmark.Struct.JobClass2Wrapper(memory.Start, false);
2323
for (int j = 0; j < 100; j++)
2424
{
2525
{
26-
using var list = new Benchmark.Struct.ListOfJobClass(5, &memory);
27-
for (int i = 0; i < Size / 2; i++)
26+
using var list = new Benchmark.Struct.ListOfJobClass((nuint)Size, &memory);
27+
for (int i = 0; i < Size; i++)
2828
{
29-
item.SetInt32(in i);
30-
item.SetInt64(i * 2);
29+
item.ChangePtr(list.GetFuture());
30+
item.SetInt32(132);
31+
item.SetInt64(248);
32+
js2W.ChangePtr(item.JobClass2Ptr);
3133
js2W.SetInt32(15);
3234
js2W.SetInt64(36);
33-
list.Add(item.Ptr);
35+
list.AddFuture();
3436
}
3537

3638
if (j > 50)
@@ -50,11 +52,13 @@ public void StackMemory()
5052
using var list2 = new Benchmark.Struct.ListOfJobClass((nuint)Size, &memory);
5153
for (int i = 0; i < Size; i++)
5254
{
53-
item.SetInt32(in i);
54-
item.SetInt64(i * 2);
55+
item.ChangePtr(list2.GetFuture());
56+
item.SetInt32(132);
57+
item.SetInt64(248);
58+
js2W.ChangePtr(item.JobClass2Ptr);
5559
js2W.SetInt32(15);
5660
js2W.SetInt64(36);
57-
list2.Add(item.Ptr);
61+
list2.AddFuture();
5862
}
5963

6064
if (j > 50)
@@ -81,13 +85,13 @@ public void SystemCollectionsStack()
8185
for (int j = 0; j < 100; j++)
8286
{
8387
{
84-
var list = new System.Collections.Generic.List<JobClass>(5);
85-
for (int i = 0; i < Size / 2; i++)
88+
var list = new System.Collections.Generic.List<JobClass>(Size);
89+
for (int i = 0; i < Size; i++)
8690
{
8791
list.Add(new JobClass()
8892
{
89-
Int32 = i,
90-
Int64 = i * 2,
93+
Int32 = 132,
94+
Int64 = 248,
9195
JobClass2 = new JobClass2()
9296
{
9397
Int32 = 15,
@@ -115,8 +119,8 @@ public void SystemCollectionsStack()
115119
{
116120
list2.Add(new JobClass()
117121
{
118-
Int32 = i,
119-
Int64 = i * 2,
122+
Int32 = 132,
123+
Int64 = 248,
120124
JobClass2 = new JobClass2()
121125
{
122126
Int32 = 15,

Src/Benchmarks/List/Optimal/PrimitiveOptimalJob.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ public void StackMemory()
2121
for (int j = 0; j < 100; j++)
2222
{
2323
{
24-
using var list = new StackMemoryCollections.Struct.ListOfInt32(5, &memory);
25-
for (int i = 0; i < Size/2; i++)
24+
using var list = new StackMemoryCollections.Struct.ListOfInt32((nuint)Size, &memory);
25+
for (int i = 0; i < Size; i++)
2626
{
27-
list.Add(in i);
27+
*list.GetFuture() = i;
28+
list.AddFuture();
2829
}
2930

3031
if(j > 50)
@@ -44,7 +45,8 @@ public void StackMemory()
4445
using var list2 = new StackMemoryCollections.Struct.ListOfInt32((nuint)Size, &memory);
4546
for (int i = 0; i < Size; i++)
4647
{
47-
list2.Add(in i);
48+
*list2.GetFuture() = i;
49+
list2.AddFuture();
4850
}
4951

5052
if (j > 50)
@@ -71,8 +73,8 @@ public void SystemCollectionsStack()
7173
for (int j = 0; j < 100; j++)
7274
{
7375
{
74-
var list = new System.Collections.Generic.List<int>(5);
75-
for (int i = 0; i < Size / 2; i++)
76+
var list = new System.Collections.Generic.List<int>(Size);
77+
for (int i = 0; i < Size; i++)
7678
{
7779
list.Add(i);
7880
}

Src/Benchmarks/List/Optimal/StructOptimalJob.cs

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,21 @@ public void StackMemory()
1818
{
1919
using (var memory = new StackMemoryCollections.Struct.StackMemory(JobStructHelper.SizeOf * (nuint)Size))
2020
{
21-
using var item = new Benchmark.Struct.JobStructWrapper();
22-
var js2W = new Benchmark.Struct.JobStruct2Wrapper(item.JobStruct2Ptr, false);
21+
var item = new Benchmark.Struct.JobClassWrapper(memory.Start, false);
22+
var js2W = new Benchmark.Struct.JobClass2Wrapper(memory.Start, false);
2323
for (int j = 0; j < 100; j++)
2424
{
2525
{
26-
using var list = new Benchmark.Struct.ListOfJobStruct(5, &memory);
27-
for (int i = 0; i < Size/2; i++)
26+
using var list = new Benchmark.Struct.ListOfJobStruct((nuint)Size, &memory);
27+
for (int i = 0; i < Size; i++)
2828
{
29-
item.SetInt32(in i);
30-
item.SetInt64(i * 2);
29+
item.ChangePtr(list.GetFuture());
30+
item.SetInt32(132);
31+
item.SetInt64(248);
32+
js2W.ChangePtr(item.JobClass2Ptr);
3133
js2W.SetInt32(15);
3234
js2W.SetInt64(36);
33-
list.Add(item.Ptr);
35+
list.AddFuture();
3436
}
3537

3638
if(j > 50)
@@ -50,11 +52,13 @@ public void StackMemory()
5052
using var list2 = new Benchmark.Struct.ListOfJobStruct((nuint)Size, &memory);
5153
for (int i = 0; i < Size; i++)
5254
{
53-
item.SetInt32(in i);
54-
item.SetInt64(i * 2);
55+
item.ChangePtr(list2.GetFuture());
56+
item.SetInt32(132);
57+
item.SetInt64(248);
58+
js2W.ChangePtr(item.JobClass2Ptr);
5559
js2W.SetInt32(15);
5660
js2W.SetInt64(36);
57-
list2.Add(item.Ptr);
61+
list2.AddFuture();
5862
}
5963

6064
if (j > 50)
@@ -82,11 +86,11 @@ public void SystemCollectionsStack()
8286
for (int j = 0; j < 100; j++)
8387
{
8488
{
85-
var list = new System.Collections.Generic.List<JobStruct>(5);
86-
for (int i = 0; i < Size/2; i++)
89+
var list = new System.Collections.Generic.List<JobStruct>(Size);
90+
for (int i = 0; i < Size; i++)
8791
{
88-
item.Int32 = i;
89-
item.Int64 = i * 2;
92+
item.Int32 = 132;
93+
item.Int64 = 248;
9094
item.JobStruct2.Int32 = 15;
9195
item.JobStruct2.Int64 = 36;
9296
list.Add(item);
@@ -109,8 +113,8 @@ public void SystemCollectionsStack()
109113
var list2 = new System.Collections.Generic.List<JobStruct>(Size);
110114
for (int i = 0; i < Size; i++)
111115
{
112-
item.Int32 = i;
113-
item.Int64 = i * 2;
116+
item.Int32 = 132;
117+
item.Int64 = 248;
114118
item.JobStruct2.Int32 = 15;
115119
item.JobStruct2.Int64 = 36;
116120
list2.Add(item);

Src/Benchmarks/List/Simple/ClassSimpleJob.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ public void StackMemory()
1919
using (var memory = new StackMemoryCollections.Struct.StackMemory(JobClassHelper.SizeOf + (JobClassHelper.SizeOf * (nuint)Size)))
2020
{
2121
var item = new Benchmark.Struct.JobClassWrapper(&memory);
22+
var item2 = new Benchmark.Struct.JobClassWrapper(item.JobClass2Ptr, false);
2223
using var list = new Benchmark.Struct.ListOfJobClass((nuint)Size, &memory);
2324
for (int i = 0; i < Size; i++)
2425
{
25-
item.SetInt32(in i);
26-
item.SetInt64(i * 2);
27-
var jc2 = Benchmark.JobClassHelper.GetJobClass2Ptr(item.Ptr);
28-
Benchmark.JobClass2Helper.SetInt32Value(in jc2, i + 3);
29-
Benchmark.JobClass2Helper.SetInt64Value(in jc2, i * 3);
26+
item.SetInt32(132);
27+
item.SetInt64(248);
28+
item2.SetInt32(15);
29+
item2.SetInt64(36);
3030
list.Add(item.Ptr);
3131
}
3232

@@ -47,9 +47,9 @@ public void SystemCollectionsStack()
4747
for (int i = 0; i < Size; i++)
4848
{
4949
list.Add(
50-
new JobClass(i, i * 2)
50+
new JobClass(132, 248)
5151
{
52-
JobClass2 = new JobClass2(i + 3, i * 3)
52+
JobClass2 = new JobClass2(15, 36)
5353
}
5454
);
5555
}

Src/Benchmarks/List/Simple/StructSimpleJob.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ public void StackMemory()
2222
using var list = new Benchmark.Struct.ListOfJobStruct((nuint)Size, &memory);
2323
for (int i = 0; i < Size; i++)
2424
{
25-
item.Int32 = i;
26-
item.Int64 = i * 2;
25+
item.Int32 = 132;
26+
item.Int64 = 248;
2727
item.JobStruct2.Int32 = 15;
2828
item.JobStruct2.Int64 = 36;
2929
list.Add(in item);
@@ -46,8 +46,8 @@ public void SystemCollectionsStack()
4646
var list = new System.Collections.Generic.List<JobStruct>(Size);
4747
for (int i = 0; i < Size; i++)
4848
{
49-
item.Int32 = i;
50-
item.Int64 = i * 2;
49+
item.Int32 = 132;
50+
item.Int64 = 248;
5151
item.JobStruct2.Int32 = 15;
5252
item.JobStruct2.Int64 = 36;
5353
list.Add(item);

0 commit comments

Comments
 (0)