Vectorized HttpCharacters (and used IndexOfAnyValues in other places found)#45300
Vectorized HttpCharacters (and used IndexOfAnyValues in other places found)#45300adityamandaleeka merged 7 commits intodotnet:mainfrom
Conversation
|
Thanks for your PR, @gfoidl. Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
|
/cc: @MihaZupan -- it gets really nice that way 😄. |
Grabbing some numbers from dotnet/runtime#78863 as an example: Chars
Bytes
|
Co-authored-by: Miha Zupan <[email protected]>
d410495 to
d80f38d
Compare
|
@gfoidl, this change will be considered for inclusion in the blog post for the release it'll ship in. Nice work! Please ensure that the original comment in this thread contains a clear explanation of what the change does, why it's important (what problem does it solve?), and, if relevant, include things like code samples and/or performance numbers. This content may not be exactly what goes into the blog post, but it will help the team putting together the announcement. Thanks! |
|
Nice! Another example of goodness coming together across multiple layers of the stack. |
|
cc: @stephentoub @danmoseley for this before and after |
|
... and how it would look if vectorized w/o runtime (not showing the generator part). |
Very glad to see it's panning out as planned. Thanks. |
|
I believe verifying perf improvement is blocking this, which is itself blocked by build issues. I added blocked label. |
|
/benchmark plaintext,json kestrel |
|
Crank Pull Request Bot
Benchmarks:
Profiles:
Components:
Arguments: any additional arguments to pass through to crank, e.g. |
|
/benchmark plaintext,json aspnet-citrine-lin kestrel |
|
Benchmark started for plaintext, json on aspnet-citrine-lin with kestrel. Logs: link |
plaintext - aspnet-citrine-lin
json - aspnet-citrine-lin
|
|
Numbers look good. The RPS deltas appear within the usual margin of noise for these benchmarks. |
|
Thanks @gfoidl! |
The title sounds like a complicated change, but thanks to dotnet/runtime#68328 it got trivial and is a way better alternative to doing it manually as in #44041.
Unfortunately the .NET daily builds are way behind at the moment, so these new APIs aren't available to run benchmarks in an easy way.
Edit: searched for other places where applicable as well. Some of the found were analyzers (NS2.0) or built for older targets where this API isn't available.