AddictedCS commented on issue #933:
URL: https://github.com/apache/lucenenet/issues/933#issuecomment-2016737653
And here are the results for different sets of parameters. The params
options set as follows:
```csharp
[Params((FileOptions.Asynchronous | FileOptions.RandomAccess |
FileOptions.WriteThrough),
(FileOptions.Asynchronous | FileOptions.RandomAccess),
(FileOptions.Asynchronous | FileOptions.WriteThrough),
(FileOptions.RandomAccess | FileOptions.WriteThrough),
(FileOptions.Asynchronous),
(FileOptions.RandomAccess),
(FileOptions.WriteThrough))]
public FileOptions Options;
```
The degradation varies between **120x-180x**.
```
BenchmarkDotNet v0.13.12, macOS Sonoma 14.4 (23E214) [Darwin 23.4.0]
Apple M2 Max, 1 CPU, 12 logical and 12 physical cores
.NET SDK 8.0.203
[Host] : .NET 8.0.3 (8.0.324.11423), Arm64 RyuJIT AdvSIMD
.NET 7.0 : .NET 7.0.5 (7.0.523.17405), Arm64 RyuJIT AdvSIMD
.NET 8.0 : .NET 8.0.3 (8.0.324.11423), Arm64 RyuJIT AdvSIMD
Server=True
| Method | Job | Runtime | Options | Mean |
Error | StdDev | Median | Ratio | RatioSD |
|------------ |--------- |--------- |---------------------
|-------------:|-----------:|-------------:|-------------:|-------:|--------:|
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **WriteThrough** |
**36.68 μs** | **0.291 μs** | **0.243 μs** | **36.75 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | WriteThrough | 4,973.23 μs |
86.943 μs | 81.327 μs | 4,998.96 μs | 135.48 | 2.83 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | WriteThrough | 40.38 μs |
0.792 μs | 1.323 μs | 40.69 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | WriteThrough | 4,941.10 μs |
98.673 μs | 228.689 μs | 4,975.19 μs | 123.60 | 6.87 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | WriteThrough | 41.22 μs |
0.524 μs | 0.490 μs | 41.37 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | WriteThrough | 4,929.82 μs |
97.550 μs | 267.042 μs | 5,001.38 μs | 115.77 | 6.19 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | WriteThrough | 4,920.57 μs |
95.867 μs | 257.541 μs | 4,963.36 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | WriteThrough | 5,087.13 μs |
99.106 μs | 250.454 μs | 5,112.59 μs | 1.04 | 0.08 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | WriteThrough | 5,389.87 μs |
106.514 μs | 242.586 μs | 5,344.43 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | WriteThrough | 5,399.41 μs |
106.635 μs | 275.259 μs | 5,349.17 μs | 1.00 | 0.07 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | WriteThrough | 10,069.75 μs |
199.011 μs | 397.447 μs | 9,939.55 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | WriteThrough | 10,609.77 μs |
207.562 μs | 414.524 μs | 10,532.28 μs | 1.05 | 0.03 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **Rando(...)rough [26]** |
**40.71 μs** | **0.808 μs** | **1.415 μs** | **41.18 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 5,069.47 μs |
98.337 μs | 153.100 μs | 5,086.67 μs | 125.11 | 6.63 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [26] | 39.86 μs |
0.642 μs | 0.502 μs | 39.70 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 4,876.37 μs |
97.067 μs | 219.097 μs | 4,917.56 μs | 120.90 | 7.23 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [26] | 41.13 μs |
0.738 μs | 0.654 μs | 41.01 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 5,010.03 μs |
97.431 μs | 108.294 μs | 4,998.43 μs | 122.20 | 3.19 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [26] | 5,150.66 μs |
109.929 μs | 320.668 μs | 5,148.15 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 5,119.08 μs |
100.497 μs | 140.883 μs | 5,122.52 μs | 1.02 | 0.07 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [26] | 5,475.21 μs |
108.031 μs | 183.446 μs | 5,480.69 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 5,193.73 μs |
103.179 μs | 160.638 μs | 5,182.32 μs | 0.95 | 0.06 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | Rando(...)rough [26] | 10,108.22 μs |
201.090 μs | 406.212 μs | 10,000.39 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | Rando(...)rough [26] | 10,041.39 μs |
199.535 μs | 398.493 μs | 9,930.46 μs | 0.99 | 0.03 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **Async(...)rough [26]** |
**40.99 μs** | **0.609 μs** | **0.540 μs** | **40.92 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 4,951.12 μs |
95.386 μs | 228.538 μs | 4,981.84 μs | 123.35 | 5.46 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | Async(...)rough [26] | 41.40 μs |
0.418 μs | 0.391 μs | 41.54 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 4,904.11 μs |
96.342 μs | 187.908 μs | 4,935.10 μs | 119.32 | 5.34 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | Async(...)rough [26] | 40.69 μs |
0.796 μs | 0.852 μs | 40.71 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 5,124.55 μs |
101.950 μs | 297.392 μs | 5,121.22 μs | 124.31 | 9.37 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | Async(...)rough [26] | 5,129.82 μs |
98.803 μs | 117.618 μs | 5,130.39 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 5,302.62 μs |
105.567 μs | 278.104 μs | 5,323.11 μs | 1.04 | 0.05 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | Async(...)rough [26] | 5,414.26 μs |
107.056 μs | 187.501 μs | 5,455.81 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 5,625.89 μs |
111.672 μs | 261.030 μs | 5,609.76 μs | 1.05 | 0.07 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | Async(...)rough [26] | 10,061.14 μs |
201.102 μs | 396.956 μs | 9,938.46 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | Async(...)rough [26] | 10,175.71 μs |
202.610 μs | 481.524 μs | 10,036.81 μs | 1.01 | 0.07 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **Rando(...)rough [40]** |
**41.07 μs** | **0.256 μs** | **0.227 μs** | **41.12 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 5,051.85 μs |
94.100 μs | 122.357 μs | 5,036.35 μs | 122.72 | 3.31 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [40] | 40.25 μs |
0.366 μs | 0.342 μs | 40.19 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 5,171.39 μs |
101.519 μs | 177.803 μs | 5,183.12 μs | 127.15 | 4.60 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [40] | 41.20 μs |
0.700 μs | 0.655 μs | 41.17 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 5,076.50 μs |
101.333 μs | 160.725 μs | 5,106.31 μs | 122.77 | 4.92 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [40] | 5,235.58 μs |
102.545 μs | 140.365 μs | 5,232.39 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 5,143.66 μs |
98.169 μs | 127.647 μs | 5,149.63 μs | 0.98 | 0.04 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | Rando(...)rough [40] | 5,377.18 μs |
107.115 μs | 287.759 μs | 5,353.74 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 5,292.95 μs |
103.324 μs | 118.988 μs | 5,291.10 μs | 0.98 | 0.05 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | Rando(...)rough [40] | 10,045.56 μs |
196.723 μs | 359.719 μs | 9,975.61 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | Rando(...)rough [40] | 10,132.24 μs |
200.504 μs | 409.577 μs | 10,062.68 μs | 1.01 | 0.02 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **RandomAccess** |
**27.67 μs** | **0.263 μs** | **0.246 μs** | **27.77 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | RandomAccess | 4,458.41 μs |
87.946 μs | 97.752 μs | 4,467.41 μs | 161.07 | 4.47 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | RandomAccess | 27.98 μs |
0.146 μs | 0.136 μs | 27.98 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | RandomAccess | 4,865.28 μs |
96.690 μs | 233.517 μs | 4,916.11 μs | 172.14 | 12.04 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | RandomAccess | 28.37 μs |
0.228 μs | 0.213 μs | 28.33 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | RandomAccess | 4,769.64 μs |
93.957 μs | 181.022 μs | 4,769.61 μs | 162.15 | 5.40 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | RandomAccess | 5,007.21 μs |
80.269 μs | 71.156 μs | 5,015.11 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | RandomAccess | 5,076.00 μs |
82.783 μs | 77.436 μs | 5,062.07 μs | 1.01 | 0.02 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | RandomAccess | 5,237.61 μs |
104.104 μs | 158.977 μs | 5,247.27 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | RandomAccess | 5,219.69 μs |
100.639 μs | 89.214 μs | 5,219.81 μs | 1.01 | 0.04 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | RandomAccess | 12,571.40 μs |
260.453 μs | 763.864 μs | 12,604.09 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | RandomAccess | 12,711.32 μs |
428.128 μs | 1,255.625 μs | 12,962.35 μs | 1.02 | 0.12 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **Asynchronous** |
**27.61 μs** | **0.291 μs** | **0.272 μs** | **27.64 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | Asynchronous | 5,026.22 μs |
98.316 μs | 100.964 μs | 5,003.53 μs | 182.20 | 4.59 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | Asynchronous | 28.23 μs |
0.538 μs | 0.576 μs | 28.34 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | Asynchronous | 4,946.44 μs |
61.866 μs | 57.870 μs | 4,952.79 μs | 175.12 | 3.58 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | Asynchronous | 28.64 μs |
0.239 μs | 0.224 μs | 28.68 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | Asynchronous | 4,969.19 μs |
94.254 μs | 88.165 μs | 4,971.37 μs | 173.51 | 2.59 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | Asynchronous | 4,971.69 μs |
53.480 μs | 47.409 μs | 4,978.96 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | Asynchronous | 5,003.56 μs |
76.701 μs | 64.049 μs | 5,022.03 μs | 1.01 | 0.02 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | Asynchronous | 5,145.74 μs |
74.349 μs | 69.546 μs | 5,149.54 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | Asynchronous | 5,232.12 μs |
87.522 μs | 77.586 μs | 5,208.61 μs | 1.02 | 0.02 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | Asynchronous | 10,666.04 μs |
210.645 μs | 453.436 μs | 10,518.88 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | Asynchronous | 10,651.27 μs |
211.794 μs | 442.092 μs | 10,555.68 μs | 1.00 | 0.07 |
| | | | | |
| | | | |
| **Write1Kb** | **.NET 7.0** | **.NET 7.0** | **Rando(...)onous [26]** |
**27.64 μs** | **0.541 μs** | **0.722 μs** | **27.79 μs** |
**1.00** | **0.00** |
| Write1Kb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 4,903.27 μs |
89.176 μs | 148.993 μs | 4,925.48 μs | 176.32 | 7.55 |
| | | | | |
| | | | |
| Write2Kb | .NET 7.0 | .NET 7.0 | Rando(...)onous [26] | 28.48 μs |
0.374 μs | 0.312 μs | 28.54 μs | 1.00 | 0.00 |
| Write2Kb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 4,942.60 μs |
97.433 μs | 162.789 μs | 4,956.53 μs | 168.21 | 4.54 |
| | | | | |
| | | | |
| Write4Kb | .NET 7.0 | .NET 7.0 | Rando(...)onous [26] | 28.51 μs |
0.229 μs | 0.203 μs | 28.44 μs | 1.00 | 0.00 |
| Write4Kb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 4,910.03 μs |
58.850 μs | 55.048 μs | 4,930.39 μs | 172.19 | 2.28 |
| | | | | |
| | | | |
| Write512Kb | .NET 7.0 | .NET 7.0 | Rando(...)onous [26] | 5,081.34 μs |
78.255 μs | 73.200 μs | 5,086.79 μs | 1.00 | 0.00 |
| Write512Kb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 5,045.27 μs |
99.064 μs | 114.082 μs | 5,056.80 μs | 0.99 | 0.03 |
| | | | | |
| | | | |
| Write1024Kb | .NET 7.0 | .NET 7.0 | Rando(...)onous [26] | 5,276.99 μs |
104.845 μs | 136.329 μs | 5,274.49 μs | 1.00 | 0.00 |
| Write1024Kb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 5,228.08 μs |
103.547 μs | 286.930 μs | 5,200.77 μs | 0.96 | 0.05 |
| | | | | |
| | | | |
| Write16Mb | .NET 7.0 | .NET 7.0 | Rando(...)onous [26] | 10,703.79 μs |
213.802 μs | 473.770 μs | 10,511.99 μs | 1.00 | 0.00 |
| Write16Mb | .NET 8.0 | .NET 8.0 | Rando(...)onous [26] | 12,362.44 μs |
476.119 μs | 1,373.711 μs | 12,661.85 μs | 1.12 | 0.15 |
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]