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]

Reply via email to