Skip to content

Commit 53f7ef1

Browse files
committed
update
1 parent 4c5db39 commit 53f7ef1

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

docs/fsharp/whats-new/fsharp-9.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,8 @@ Full name: Microsoft.FSharp.Collections.ListModule.map
197197
Assembly: FSharp.Core.dll
198198
```
199199

200+
See [Enhancing #help in F# Interactive blog post](https://devblogs.microsoft.com/dotnet/enhancing-help-in-fsi/) for more details.
201+
200202
## Allow #nowarn to support the FS prefix on error codes to disable warnings
201203

202204
Previously, when you wanted to disable a warning and wrote `#nowarn "FS0057"`, you would get an `Invalid warning number 'FS0057'`. Even though the warning number is correct, it just wasn't supposed to have the `FS` prefix.
@@ -390,6 +392,34 @@ let missingId = MyId -1
390392
let _ = ids |> Array.contains missingId
391393
```
392394

395+
#### Benchmark results for affected array functions, applied to a 2-member struct
396+
397+
Before:
398+
399+
| Method | Mean | Error | Gen0 | Allocated |
400+
|----------------------------- |------------:|-----------:|-------:|----------:|
401+
| ArrayContainsExisting | 15.48 ns | 0.398 ns | 0.0008 | 48 B |
402+
| ArrayContainsNonexisting | 5,190.95 ns | 103.533 ns | 0.3891 | 24000 B |
403+
| ArrayExistsExisting | 17.97 ns | 0.389 ns | 0.0012 | 72 B |
404+
| ArrayExistsNonexisting | 5,316.64 ns | 103.776 ns | 0.3891 | 24024 B |
405+
| ArrayTryFindExisting | 24.80 ns | 0.554 ns | 0.0015 | 96 B |
406+
| ArrayTryFindNonexisting | 5,139.58 ns | 260.949 ns | 0.3891 | 24024 B |
407+
| ArrayTryFindIndexExisting | 15.92 ns | 0.526 ns | 0.0015 | 96 B |
408+
| ArrayTryFindIndexNonexisting | 4,349.13 ns | 100.750 ns | 0.3891 | 24024 B |
409+
410+
After:
411+
412+
| Method | Mean | Error | Gen0 | Allocated |
413+
|----------------------------- |-------------:|-----------:|-------:|----------:|
414+
| ArrayContainsExisting | 4.865 ns | 0.3452 ns | - | - |
415+
| ArrayContainsNonexisting | 766.005 ns | 15.2003 ns | - | - |
416+
| ArrayExistsExisting | 8.025 ns | 0.1966 ns | 0.0004 | 24 B |
417+
| ArrayExistsNonexisting | 834.811 ns | 16.2784 ns | - | 24 B |
418+
| ArrayTryFindExisting | 16.401 ns | 0.3932 ns | 0.0008 | 48 B |
419+
| ArrayTryFindNonexisting | 1,140.515 ns | 22.7372 ns | - | 24 B |
420+
| ArrayTryFindIndexExisting | 14.864 ns | 0.3648 ns | 0.0008 | 48 B |
421+
| ArrayTryFindIndexNonexisting | 990.028 ns | 19.7157 ns | - | 24 B |
422+
393423
You can read all the details here: [F# Developer Stories: How we’ve finally fixed a 9-year-old performance issue](https://devblogs.microsoft.com/dotnet/fsharp-developer-stories-how-weve-finally-fixed-a-9yearold-performance-issue/).
394424

395425
### Field sharing for struct discriminated unions

0 commit comments

Comments
 (0)