Paulus Pärssinen

Results 25 issues of Paulus Pärssinen

This PR adds a [BenchmarkDotNet](https://benchmarkdotnet.org/) project to the benchmarks directory for future microbenchmarks. I included some initial RESP-protocol low-level integer reading and writing benchmarks as an example, which will likely...

We discussed this a bit earlier in [the Garnet discord](https://aka.ms/garnet-discord) but I'm opening issue for tracking it here. In .NET 6, [the File IO in the BCL was essentially entirely...

help wanted

I'm opening this issue to get some input from the maintainers on the possibility of having the projects code-style enforced with .editorconfig rules. Code-style such as naming conventions are _very...

enhancement

This PR changes the `NumUtils.CRC16` method to use RVA instead of `readonly static` for the precomputed CRC16 table. ```diff -; Total bytes of code 121, prolog size 11, PerfScore 53.06,...

Help JIT to coalesce some word and dword sized stores in `RespWriteUtils`. ### Sample diffs Garnet.common.RespWriteUtils:WriteNull ```diff ; Assembly listing for method Garnet.common.RespWriteUtils:WriteNull(byref,ulong):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with...

This PR includes various little refactoring and changes that can be considered ["peanut-butter"](https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/#peanut-butter) as Toub terms them. I have shared my concerns about this type in general on Garnet discord...

Closes #202 Where should I add regression test for this? It seems the testing coverage for this layer of the API is minimal (I only see couple overloads tested in...

### Culture invariant parsing * Avoid re-encoding ASCII and allocating temporary strings, instead feed bytes into directly to `Utf8Parser.TryParse` * In https://github.com/microsoft/garnet/pull/255/commits/02cca169e280f00348e20c9ac149429125ef9dd2, this change indirectly fixes the issue where cultures...

parser

Make the `GlobUtils.Match` do direct ASCII comparisons instead of more expensive culture-sensitive ones. ![image](https://github.com/microsoft/garnet/assets/26825431/17d30bf8-0785-4f69-85b9-7fad5baccc34)

This PR uses VS automation to apply IDE0300 & IDE0028: Collection initialization can be simplified to `Garnet.test`