Skip to content

Benchmarks

Eris edited this page Mar 19, 2023 · 27 revisions

This page shows the results of CatCore’s performance benchmarks and serves as a comparison with the old ChatCore implementation. The initial resultsets are a subset of the ones that apply to Beat Saber, scoped to the specific version of the Unity Mono runtime.
Further down, the full benchmark results are provided, which consist of runs against the following runtimes:

  • .NET 5
  • .NET 6
  • .NET Framework 4.7.2
  • Mono Unity 2019.4.28f1
  • Mono Unity 2021.2.0b4
  • Mono Unity 2022.1.0a12

Legend

Before getting to the actual benchmarks and results, it's probably a good idea to have a bit of understanding of how to interpret the results. So here is a small legend on what each and every column means.

  Method    : Name of the benchmark case
  Job       : Id of the benchmark run. Can be ignored
  Runtime   : Denotes the name and version of the runtime.
  Mean      : Arithmetic mean of all measurements
  Error     : Half of 99.9% confidence interval
  StdDev    : Standard deviation of all measurements
  StdErr    : Standard error of all measurements
  Min       : Minimum
  Q1        : Quartile 1 (25th percentile)
  Median    : Value separating the higher half of all measurements (50th percentile)
  Q3        : Quartile 3 (75th percentile)
  Max       : Maximum
  Op/s      : Operation per second
  Ratio     : Mean of the ratio distribution ([Current]/[Baseline])
  Gen 0     : GC Generation 0 collects per 1000 operations
  Gen 1     : GC Generation 1 collects per 1000 operations
  Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
  1 ns      : 1 Nanosecond (0.000000001 sec)

This is, however, a lot of information and might be a bit overwhelming, so in short, you mainly want to focus on the following columns.

  • Method: This is a pretty important column as it shows the actual name of the implementation to which the results next to it belong.
  • mean and error: The mean column indicates how much (or little) time was spent executing the implementation a single time on average, while the error column indicates the margin of error. You would want these numbers to be as LOW as possible.
  • Op/s: This column indicates how many times said implementation could be executed in the timespan of a second. You want these numbers to be as HIGH as possible.

Those should give you a pretty good idea on how to interpret the results, applicable to Beat Saber at least.

However, the raw resultsets below contain a few more columns that might be of interest.

  • Runtime: This one indicates the runtime and version in which the implementations were being run. This is handy to know because different runtime (versions) can have varying characteristics.
  • Gen 0, Gen 1, Allocated: The first 2 columns indicate how much the garbage collector is pressured, while the third one denotes how much garbage is being generated during a singular run of the the method. You want those to be as LOW as possible, as a garbage collection trigger is often the cause of a lag spike.

Mono Unity 2019.4.28f1 (Beat Saber)

Most of the optimizations were focused on the chat handling part of CatCore. Given that the old implementation was relying on a bunch of Regular Expressions (also known as "Regex"), which are... incredibly slow, especially in Mono Unity, as well as not exactly being foolproof, I decided to replace all of them with tailor-made logic.

The first 3 sets of benchmarks will be regarding the actual deconstruction of an incoming chat message, the fourth benchmark encompasses the performance improvements when a raw incoming chat message consists of multiple messages, while the fifth impacts the performance of detecting emotes in a chat message.

High-level IRC (chat) message deconstruction

Okay so, "High-level IRC (chat) message deconstruction"... it's a mouthful, but you might be wondering what it exactly encompasses? Well, glad you asked. Every incoming IRC (chat) message consists of up-to 5 different, but mostly optional main parts:

  1. Tags (basically metadata about the message)
  2. Prefix
  3. CommandType
  4. ChannelName
  5. Message

It's important to note that of those 5 parts, CommandType is the only one which is required to be present. All the other parts can be omitted depending on the CommandType itself.

Thus... with that small explanation out of the way, it's time to explain the goal of this benchmark, namely optimizing the splitting of an entire message into those 5 different parts.

Our benchmark itself consists of 2 methods that can both handle this for us:

  1. RegexBenchmark
    This is the old ChatCore implementation that relies on Regular Expressions (also known as "Regex" from here on out), however... it's known to be hard to write, and it's highly likely that one ends up writing an poorly performing Regex as well. That's why I wrote 2.
  2. SpanDissectionBenchmark
    This is the new CatCore implementation. This is basically a tailor-made parser for those messages that also leverages some newer runtime features to reduce memory allocations. As a result of that, it also tries to reduce the amount of "Stop the world" garbage collection cycles (by players also known as "lag spikes").

This benchmark was also parameterized to test the old and new implementations against several different messages.
Those messages are actual real-world data, this means that they're messages that actually were sent at some point in time.
The results table will also show the total length of each message between square brackets in the IrcMessage column.

  1. :tmi.twitch.tv 376 realeris :>
  2. :realeris![email protected] JOIN #realeris
  3. :realeris.tmi.twitch.tv 353 realeris = #realeris :realeris
  4. :realeris.tmi.twitch.tv 366 realeris #realeris :End of /NAMES list
  5. :tmi.twitch.tv CAP * ACK :twitch.tv/tags twitch.tv/commands twitch.tv/membership
  6. @badge-info=subscriber/1;badges=broadcaster/1,subscriber/0;client-nonce=1ef9899702c12a2081fa33899d7e8465;color=#FF69B4;display-name=RealEris;emotes=;flags=;id=b4595e1c-dd1b-4e45-b7df-a3403c945ad6;mod=0;room-id=405499635;subscriber=1;tmi-sent-ts=1614390981294;turbo=0;user-id=405499635;user-type= :realeris![email protected] PRIVMSG #realeris :Heya
  7. @badge-info=founder/13;badges=moderator/1,founder/0,bits/1000;client-nonce=05e5fe0b80aadc4c5035303b99d6762a;color=#DAA520;display-name=Scarapter;emotes=;flags=;id=7317d5aa-38ae-4191-88d7-d4d54a3c27bc;mod=1;room-id=62975335;subscriber=0;tmi-sent-ts=1617644034348;turbo=0;user-id=51591450;user-type=mod :scarapter![email protected] PRIVMSG #lnterz :i definitely dont miss the mass of random charging ports that existed
  8. @badge-info=;badges=;color=;display-name=bonkeybob;emotes=;flags=;id=108b80a1-7829-4879-86cc-953c3a6b122b;mod=0;room-id=62975335;subscriber=0;tmi-sent-ts=1617644112658;turbo=0;user-id=549616012;user-type= :bonkeybob![email protected] PRIVMSG #lnterz :The phrase Γ’οΏ½οΏ½itΓ’οΏ½οΏ½s just a gameΓ’οΏ½οΏ½ is such a weak mindset. You are ok with what happened, losing, imperfection of a craft. When you stop getting angry after losing, youΓ’οΏ½οΏ½ve lost twice. ThereΓ’οΏ½οΏ½s always something to learn, and always room for improvement, never settle.
  9. @badge-info=subscriber/1;badges=broadcaster/1,subscriber/0;client-nonce=1ef9899702c12a2081fa33899d7e8465;color=#FF69B4;display-name=RealEris;emotes=;flags=;id=b4595e1c-dd1b-4e45-b7df-a3403c945ad6;mod=0;room-id=405499635;subscriber=1;tmi-sent-ts=1614390981294;turbo=0;user-id=405499635;user-type= :realeris![email protected] PRIVMSG #realeris :Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop p

The results below basically show that there's already a massive performance improvement for the short and technical messages. (cases 1 - 5)
However, for the actual chat messages (cases 6 - 9), which in normal circumstances make up the majority of the messages, we can note down an even bigger performance improvement.

TL;DR

Depending on the raw message length, we're seeing an improvement starting at 7x, but mostly ranging from ~11.1x, up to ~16.6x.

The benchmark results are reproducible by executing the following benchmark: TwitchIrcMessageHighLevelDeconstructionBenchmark.cs


BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
Method Job Runtime IrcMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 361.56 ns 2.340 ns 2.189 ns 0.565 ns 358.98 ns 360.18 ns 360.79 ns 363.09 ns 365.72 ns 2,765,815.9 0.14 No 0.0343 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 2,500.16 ns 6.565 ns 6.141 ns 1.586 ns 2,492.50 ns 2,495.83 ns 2,498.48 ns 2,503.85 ns 2,510.76 ns 399,974.1 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 307.48 ns 1.264 ns 1.182 ns 0.305 ns 305.13 ns 306.81 ns 307.85 ns 308.25 ns 309.30 ns 3,252,243.2 0.11 No 0.0443 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 2,783.60 ns 7.138 ns 5.573 ns 1.609 ns 2,773.69 ns 2,780.06 ns 2,782.94 ns 2,788.61 ns 2,790.78 ns 359,246.8 1.00 Yes 0.3052 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 409.13 ns 1.222 ns 1.143 ns 0.295 ns 407.47 ns 408.36 ns 408.72 ns 409.87 ns 411.97 ns 2,444,188.3 0.13 No 0.0539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 3,154.35 ns 10.074 ns 8.412 ns 2.333 ns 3,143.55 ns 3,149.39 ns 3,151.29 ns 3,156.36 ns 3,173.56 ns 317,022.1 1.00 Yes 0.2670 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 405.82 ns 0.822 ns 0.642 ns 0.185 ns 404.54 ns 405.22 ns 406.06 ns 406.23 ns 406.52 ns 2,464,167.5 0.13 No 0.0591 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 3,122.79 ns 6.530 ns 5.789 ns 1.547 ns 3,112.50 ns 3,119.19 ns 3,122.12 ns 3,126.29 ns 3,135.81 ns 320,226.6 1.00 Yes 0.2747 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 352.62 ns 0.777 ns 0.649 ns 0.180 ns 351.50 ns 352.42 ns 352.89 ns 353.15 ns 353.36 ns 2,835,916.2 0.11 No 0.0558 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 3,282.52 ns 5.705 ns 5.337 ns 1.378 ns 3,274.53 ns 3,278.95 ns 3,283.47 ns 3,286.28 ns 3,293.63 ns 304,644.0 1.00 Yes 0.2708 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 687.30 ns 2.639 ns 2.204 ns 0.611 ns 684.12 ns 685.54 ns 686.59 ns 688.77 ns 691.37 ns 1,454,959.5 0.09 No 0.2241 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 7,484.77 ns 20.474 ns 19.151 ns 4.945 ns 7,465.97 ns 7,470.10 ns 7,476.78 ns 7,493.77 ns 7,523.47 ns 133,604.7 1.00 Yes 0.4883 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 695.01 ns 4.367 ns 3.871 ns 1.035 ns 690.55 ns 692.49 ns 693.82 ns 697.03 ns 704.73 ns 1,438,821.5 0.08 No 0.2441 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 8,544.20 ns 30.453 ns 28.486 ns 7.355 ns 8,504.17 ns 8,520.40 ns 8,538.84 ns 8,558.49 ns 8,596.22 ns 117,038.4 1.00 Yes 0.5035 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 750.54 ns 3.074 ns 2.876 ns 0.743 ns 746.38 ns 748.74 ns 750.24 ns 752.76 ns 757.02 ns 1,332,369.4 0.07 No 0.3252 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 10,024.33 ns 67.130 ns 62.793 ns 16.213 ns 9,957.36 ns 9,975.43 ns 9,997.11 ns 10,058.46 ns 10,142.75 ns 99,757.3 1.00 Yes 0.5646 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 913.65 ns 2.422 ns 2.266 ns 0.585 ns 909.75 ns 912.03 ns 913.86 ns 915.14 ns 917.27 ns 1,094,511.1 0.06 No 0.4883 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 14,729.86 ns 269.009 ns 251.631 ns 64.971 ns 14,418.44 ns 14,489.71 ns 14,819.04 ns 14,920.24 ns 15,097.62 ns 67,889.3 1.00 Yes 0.7324 - -

IRC (chat) message tags deconstruction

The second part of in optimizing the message deconstruction is in actually improving the performance of the tags deconstruction.
However, I can fully imagine that I'm once again speaking an unfamiliar language or mentioning unfamiliar things.
As mentioned earlier, the tags of a message are in short basically some metadata of the message. Depending on the message, it will contain:

  • The id is of the message
  • Information about the person who sent the message (eg: their actual chosen display name, their preferred chat color, badges, ...)
  • ...

However, even this is received in 1 long piece of text, and to make it easier for other dependent mods/programs to actually work with this data. CatCore will actually pre-parse the tags as well. However, there are many approaches to do this, with one being faster or slower than the other, so I ended up coming up with a wide variety of implementations. However, for the sake of simplicity, I'll only be comparing the old ChatCore one and the new CatCore one.

Without further ado, the explanation of the actual benchmark cases:

  1. ChatCoreBaselineBenchmark
    As the name implies, this is basically the implementation that was used by ChatCore and does once again rely on a Regex to do the parsing of all the tags, and is thus pretty slow.
  2. SpanDissectionBenchmarkV3
    This was actually already the third iteration of one of the ways I came up with and works in a different way as it ditches the Regex used in the first case entirely. The 2 versions prior to this one still had some room for performance improvement and reduction of memory pressure (and were both also broken and fixed at some point), but their results will also be included in the full resultset below.

This benchmark is also parameterized to make sure it performs well, regardless of the workload.
Below the possible parameters, the parameter that's being used in a specific benchmark case will be shown in the IrcMessage column.

  1. badge-info=;badges=;color=;display-name=bonkeybob;emotes=;flags=;id=108b80a1-7829-4879-86cc-953c3a6b122b;mod=0;room-id=62975335;subscriber=0;tmi-sent-ts=1617644112658;turbo=0;user-id=549616012;user-type=
  2. badge-info=subscriber/1;badges=broadcaster/1,subscriber/0;client-nonce=1ef9899702c12a2081fa33899d7e8465;color=#FF69B4;display-name=RealEris;emotes=;flags=;id=b4595e1c-dd1b-4e45-b7df-a3403c945ad6;mod=0;room-id=405499635;subscriber=1;tmi-sent-ts=1614390981294;turbo=0;user-id=405499635;user-type=
  3. badge-info=founder/13;badges=moderator/1,founder/0,bits/1000;client-nonce=05e5fe0b80aadc4c5035303b99d6762a;color=#DAA520;display-name=Scarapter;emotes=;flags=;id=7317d5aa-38ae-4191-88d7-d4d54a3c27bc;mod=1;room-id=62975335;subscriber=0;tmi-sent-ts=1617644034348;turbo=0;user-id=51591450;user-type=mod

TL;DR

Depending on the length and complexity of the raw metadata text, we're seeing an improvement ranging from 7x, up to ~16.6x.

The benchmark results are reproducible by executing the following benchmark: TwitchIrcMessageTagsDeconstructionBenchmark.cs


BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
Method Job Runtime IrcMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,070.2 ns 3.89 ns 3.64 ns 0.94 ns 2,063.7 ns 2,067.0 ns 2,070.2 ns 2,072.7 ns 2,076.5 ns 483,047.6 0.06 No 0.2899 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 37,637.0 ns 103.03 ns 96.38 ns 24.88 ns 37,502.9 ns 37,580.6 ns 37,595.8 ns 37,720.6 ns 37,803.8 ns 26,569.6 1.00 Yes 0.9766 - -
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 2,973.6 ns 8.01 ns 6.69 ns 1.86 ns 2,962.2 ns 2,970.2 ns 2,973.8 ns 2,978.2 ns 2,985.6 ns 336,291.2 0.11 No 0.3891 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 27,362.1 ns 53.81 ns 44.94 ns 12.46 ns 27,297.0 ns 27,322.5 ns 27,352.8 ns 27,393.8 ns 27,456.4 ns 36,546.9 1.00 Yes 1.4038 - -
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,153.1 ns 9.45 ns 7.89 ns 2.19 ns 3,142.6 ns 3,147.9 ns 3,151.6 ns 3,156.1 ns 3,169.4 ns 317,147.3 0.14 No 0.3967 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 22,426.2 ns 31.40 ns 27.84 ns 7.44 ns 22,372.5 ns 22,406.9 ns 22,428.9 ns 22,446.1 ns 22,472.9 ns 44,590.6 1.00 Yes 1.4954 - -

IRC (chat) message compound deconstruction

In short, this set of results is the combination of the 2 prior mentioned optimizations, working in tandem. The intent of this is to actually give a better idea of just how much of an impact those, on their own already impressive results, actually have when we actually piece them together. Simple maths would tell us that 1 + 1 = 2, but nothing could be further from the actual truth in this case.

By combining these 2 parts, we can either end up improving or worsening the overall performance of each implementation. This is however also highly dependent on several factors, for example, but not limited to:

  • Runtime characteristics
  • How much garbage was generated and did the garbage collector activate
  • Was it possible to reduce overhead by combining both
  • ...

As (somewhat) mentioned before, the compound deconstruction benchmark case consists of 2 different implementations:

  1. RegexBenchmark
    This is the old ChatCore implementation that relies on 2 Regexes to achieve its goal. The regexes themselves are fairly complex, but the overall amount of code is fairly low.
  2. SpanDissectionBenchmark
    This one is the new CatCore implementation. It consists of the 2 tailor-made parsers that were performance tested earlier. It's a whole lot of code that's also complex to a certain degree, but can use newer runtime features to achieve better performance.

This benchmark utilizes the same parameters as the ones used in the High-level IRC (chat) message deconstruction section.

TL;DR

For the short and more technical messages (cases 1 - 5), we can see an, on average, improvement of 7.5x~8.5x.
For actual chat messages (cases 6-9), we do actually see even more impressive improvements.

  • A ~45x improvement for a message as simple as "hey"
  • An improvement of almost ~3500x for a max length (500 characters) chat message.

The benchmark results are reproducible by executing the following benchmark: TwitchIrcMessageCompoundDeconstructionBenchmark.cs


BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
Method Job Runtime IrcMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 362.39 ns 1.555 ns 1.455 ns 0.376 ns 359.79 ns 361.68 ns 362.49 ns 363.63 ns 364.64 ns 2,759,481.38 0.15 No 0.0343 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 2,465.25 ns 4.485 ns 3.976 ns 1.063 ns 2,457.58 ns 2,463.02 ns 2,466.19 ns 2,467.60 ns 2,471.10 ns 405,638.92 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 306.70 ns 1.308 ns 1.160 ns 0.310 ns 304.47 ns 306.15 ns 306.83 ns 307.08 ns 308.67 ns 3,260,531.22 0.11 No 0.0443 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 2,802.31 ns 5.838 ns 5.176 ns 1.383 ns 2,794.71 ns 2,798.29 ns 2,801.51 ns 2,806.91 ns 2,810.19 ns 356,848.32 1.00 Yes 0.3052 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 417.00 ns 2.904 ns 2.717 ns 0.701 ns 413.33 ns 415.26 ns 416.52 ns 418.76 ns 423.46 ns 2,398,059.55 0.13 No 0.0539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 3,164.86 ns 5.672 ns 5.306 ns 1.370 ns 3,154.75 ns 3,162.28 ns 3,163.17 ns 3,169.13 ns 3,174.34 ns 315,969.61 1.00 Yes 0.2670 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 413.97 ns 1.950 ns 1.824 ns 0.471 ns 410.27 ns 413.02 ns 413.65 ns 415.46 ns 416.57 ns 2,415,610.59 0.13 No 0.0591 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 3,141.06 ns 5.896 ns 5.515 ns 1.424 ns 3,132.91 ns 3,135.44 ns 3,142.11 ns 3,145.18 ns 3,149.20 ns 318,363.98 1.00 Yes 0.2747 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 389.95 ns 1.467 ns 1.373 ns 0.354 ns 387.94 ns 388.73 ns 389.75 ns 391.12 ns 392.52 ns 2,564,406.51 0.12 No 0.0558 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 3,287.59 ns 5.978 ns 5.592 ns 1.444 ns 3,278.60 ns 3,283.00 ns 3,288.18 ns 3,291.96 ns 3,297.29 ns 304,174.07 1.00 Yes 0.2708 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 3,567.49 ns 7.626 ns 6.761 ns 1.807 ns 3,558.70 ns 3,562.17 ns 3,565.88 ns 3,571.76 ns 3,580.18 ns 280,309.23 0.02 No 0.4539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 159,720.72 ns 771.177 ns 683.628 ns 182.707 ns 158,989.84 ns 159,167.83 ns 159,474.34 ns 160,238.27 ns 161,213.92 ns 6,260.93 1.00 Yes 1.7090 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 3,843.61 ns 75.780 ns 74.426 ns 18.607 ns 3,743.91 ns 3,749.57 ns 3,896.47 ns 3,903.13 ns 3,917.95 ns 260,172.22 0.006 No 0.4997 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 618,089.78 ns 1,879.132 ns 1,757.741 ns 453.847 ns 616,057.91 ns 616,779.54 ns 617,671.58 ns 618,884.62 ns 621,829.20 ns 1,617.89 1.000 Yes 0.9766 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 2,721.36 ns 5.919 ns 4.943 ns 1.371 ns 2,713.54 ns 2,719.72 ns 2,720.25 ns 2,725.01 ns 2,729.35 ns 367,462.81 0.001 No 0.4921 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 4,536,654.88 ns 8,660.274 ns 6,761.372 ns 1,951.840 ns 4,528,067.97 ns 4,530,916.60 ns 4,536,573.44 ns 4,542,208.59 ns 4,549,146.09 ns 220.43 1.000 Yes - - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 3,879.16 ns 19.729 ns 16.475 ns 4.569 ns 3,859.72 ns 3,869.30 ns 3,873.04 ns 3,883.90 ns 3,913.57 ns 257,787.97 0.000 No 0.7324 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 13,337,526.15 ns 21,661.611 ns 20,262.284 ns 5,231.699 ns 13,304,620.31 ns 13,322,991.41 ns 13,329,735.94 ns 13,355,866.41 ns 13,376,846.88 ns 74.98 1.000 Yes - - -

Multi IRC (chat) message deconstruction

The 3 prior sections described the optimizations done to handle a singular IRC (chat) message, however... it's also possible that the raw message that we receive consists of multiple messages that all need to be handled.
This was already done properly by the new CatCore implementation, but I figured that even with the new implementation, there was still some room for improvement.
The logic to split up the raw text into multiple messages that could be handled on their own, created some unnecessary garbage as the standalone message would be deconstructed even more moments later.
Thus by leveraging some newer runtime features, we could actually reduce a lot of the memory pressure by simply creating less garbage, gaining some more performance in the process.

This benchmark set consists of 3 implementations:

  1. IntermediateStringSplitBenchmark
    This implementation is based on splitting the whole raw message objects beforehand, creating a list of messages that had to be handled.
  2. InlineSpanBasedSplitBenchmarkV1 (Shipped initially) This implementation actually differs a bit from the prior one.
    First, it doesn't really create full objects that contain the messages, but instead creates some kind of wrapper that points to the same block of memory. This had the added benefit that said wrapper could be reused as part of the optimization, as the code to deconstruct a singular message already used such a wrapper already internally.
    Secondly, the splitting happens on-the-fly, compared to having to create the list beforehand. This also saves us an allocation of the list itself.
  3. InlineSpanBasedSplitBenchmarkV2 (Starting CatCore v1.1.0) The previous implemenentation was the one that was shipped initially, however... after almost a year, it was noticed that the last character of messages that were send by CatCore would go missing when received internally. The root cause was found in that implementation, which led to it being done over from scratch. When traced back to the roots, this implementation still works roughly the same way as the previous one, however the mechanism for detecting the separator combination has been changed.

This benchmark isn't exactly parameterized and was instead, but was instead tested against a singular set a messages. This is because messages aren't grouped that much usually.

  1. :tmi.twitch.tv 001 realeris :Welcome, GLHF!\r\n:tmi.twitch.tv 002 realeris :Your host is tmi.twitch.tv\r\n:tmi.twitch.tv 003 realeris :This server is rather new\r\n:tmi.twitch.tv 004 realeris :-\r\n:tmi.twitch.tv 375 realeris :-\r\n:tmi.twitch.tv 372 realeris :You are in a maze of twisty passages, all alike.\r\n:tmi.twitch.tv 376 realeris :>\r\n@badge-info=;badges=;color=#FF69B4;display-name=RealEris;emote-sets=0,237026,489998,300374282,303670737,477339272,592920959,610186276;user-id=405499635;user-type= :tmi.twitch.tv GLOBALUSERSTATE\r\n

TL;DR

We're seeing an average improvement of ~1.23x in this area when the initial implementation is used. Starting with CatCore v1.1.0, this factor gets improved with another ~1.08x on average, which results in an average improvement, compared to baseline, of ~1.33x. This will probably be the smallest gain we've seen so far, but contributes once again to the overall performance improvements of CatCore as a whole.

The benchmark results are reproducible by executing the following benchmark: TwitchIrcMultiMessageCompoundDeconstructionBenchmark.cs


BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19044.2728/21H2/November2021Update)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4614.0), X64 RyuJIT VectorSize=256
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86 VectorSize=128
Method Runtime RawIrcMultiMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio RatioSD Baseline Gen0 Gen1 Allocated Alloc Ratio
InlineSpanBasedSplitBenchmarkV2 Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 4,902.7 ns 49.60 ns 46.40 ns 11.98 ns 4,848.7 ns 4,863.6 ns 4,889.3 ns 4,948.6 ns 4,986.8 ns 203,970.7 0.75 0.01 No 0.4883 - - NA
InlineSpanBasedSplitBenchmarkV1 Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 5,247.7 ns 22.22 ns 19.69 ns 5.26 ns 5,220.6 ns 5,237.6 ns 5,242.9 ns 5,257.8 ns 5,291.4 ns 190,560.0 0.81 0.00 No 0.4883 - - NA
IntermediateStringSplitBenchmark Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 6,506.0 ns 43.93 ns 41.09 ns 10.61 ns 6,448.5 ns 6,468.9 ns 6,506.4 ns 6,538.9 ns 6,574.6 ns 153,705.0 1.00 0.00 Yes 1.3199 - - NA

Emoji parsing

This benchmark is related to the code that does the detection of Unicode emojis in chat messages. For example, in the chat message "I ❀️ playing games!", it will detect the heart emoji, as well as in which position it occurred in the chat message. This will allow programs/mods to properly visualize the actual emoji instead of just showing the text representation.

ℹ️ Additional information
It's also important to note that performance was not the only thing that was heavily improved in this area. The other key points that were also addressed, are its maintainability (updating for newer unicode emoji versions is as simple as updating a reference file now), as well as its correctness in detecting emotes, as can be seen on the screenshot below.
It's also good to know that the new implementation was updated in the meantime to support Unicode 14.0 emojis, while the old implementation is still lagging behind, the tests below were run against the Unicode 13.1 Emoji reference file.
Emoji parser unit test results

This benchmark consists of 3 possible implementations that could be used to parse emojis.

  1. FrwTwemojiBaselineBenchmark
    This implementation is the original one from ChatCore, based on the FrwTwemoji repository
  2. FrwTwemojiAdjustedBenchmark
    This implementation is, as the name implies an adjusted version of the baseline one above. It's basically the same idea with just a few minor differences.
  3. CatCoreTwemojiReimplementationBenchmark
    This is the method that's currently in use in CatCore, and is based on an entirely different approach. More details about the actual implementation can be found in the CatCore.Emoji GitHub repository.

Furthermore, those 3 implementations got performance tested against 3 different input values to ensure that their performance wasn't solely based on a single (possibly flawed) approach. The parameter that's being used in a specific benchmark case will be shown in the Message column.

  1. I 🧑 Twemoji! πŸ₯³
  2. I've eaten Chinese food 😱😍🍱🍣πŸ₯πŸ™πŸ˜πŸšπŸœπŸ±πŸ£πŸ₯πŸ™πŸ˜πŸšπŸœ
  3. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

The benchmark results are reproducible by executing the following benchmark: EmojiParserBenchmark.cs


BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
Method Job Runtime Message Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 624.2 ns 3.95 ns 3.30 ns 0.91 ns 619.3 ns 622.5 ns 623.9 ns 625.8 ns 631.2 ns 1,601,943.0 0.06 No 0.1049 - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 9,924.5 ns 16.82 ns 14.04 ns 3.90 ns 9,903.4 ns 9,916.5 ns 9,921.0 ns 9,928.5 ns 9,951.5 ns 100,761.0 0.93 No 0.3357 - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 10,663.5 ns 57.06 ns 53.37 ns 13.78 ns 10,602.8 ns 10,622.4 ns 10,629.1 ns 10,701.1 ns 10,766.3 ns 93,777.9 1.00 Yes 0.4120 - -
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 3,886.9 ns 17.78 ns 14.85 ns 4.12 ns 3,858.7 ns 3,883.2 ns 3,890.1 ns 3,896.2 ns 3,908.4 ns 257,274.1 0.04 No 0.7782 - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 80,814.0 ns 266.87 ns 236.58 ns 63.23 ns 80,355.9 ns 80,647.9 ns 80,885.8 ns 80,967.0 ns 81,269.2 ns 12,374.1 0.93 No 2.4414 - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 86,738.8 ns 408.37 ns 381.99 ns 98.63 ns 86,151.5 ns 86,474.0 ns 86,769.1 ns 87,042.4 ns 87,404.2 ns 11,528.9 1.00 Yes 3.0518 - -
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 9,937.6 ns 32.57 ns 30.47 ns 7.87 ns 9,898.6 ns 9,914.9 ns 9,921.5 ns 9,961.7 ns 9,987.0 ns 100,627.5 0.23 No - - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 42,752.9 ns 97.89 ns 91.57 ns 23.64 ns 42,607.8 ns 42,661.5 ns 42,788.4 ns 42,809.0 ns 42,899.9 ns 23,390.2 1.00 Yes - - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 42,842.8 ns 123.34 ns 115.37 ns 29.79 ns 42,714.7 ns 42,743.4 ns 42,829.9 ns 42,894.9 ns 43,047.7 ns 23,341.2 1.00 No - - -

Full resultset

As mentioned earlier, this section contains the full resultset, measuring the performance of the benchmark cases above, but across several runtimes. This is because some runtime implementations have different performance characteristics.

High-level IRC (chat) message deconstruction

Clarification on this can be found here.

Click to expand!

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-CIRMVA : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT
  • Job-NVAYXH : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
  • Job-ZSFKTD : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
  • Job-UGEEKR : Mono 6.13.0 (Visual Studio), X86
  • Job-LJOXDK : Mono 6.13.0 (Visual Studio), X86
Method Job Runtime IrcMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [56] 65.03 ns 0.326 ns 0.289 ns 0.077 ns 64.55 ns 64.79 ns 64.98 ns 65.27 ns 65.47 ns 15,378,448.8 0.06 No 0.0210 - 176 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [56] 1,014.37 ns 8.037 ns 7.517 ns 1.941 ns 1,005.93 ns 1,008.60 ns 1,012.67 ns 1,019.02 ns 1,028.01 ns 985,830.7 1.00 Yes 0.1831 - 1,536 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [56] 60.61 ns 0.272 ns 0.241 ns 0.064 ns 60.27 ns 60.42 ns 60.61 ns 60.72 ns 61.07 ns 16,498,885.8 0.07 No 0.0210 - 176 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [56] 858.31 ns 3.362 ns 3.145 ns 0.812 ns 853.93 ns 855.67 ns 858.58 ns 861.13 ns 863.64 ns 1,165,080.3 1.00 Yes 0.1831 - 1,536 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [56] 102.06 ns 0.406 ns 0.380 ns 0.098 ns 101.58 ns 101.76 ns 102.03 ns 102.31 ns 102.77 ns 9,797,823.2 0.07 No 0.0318 - 201 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [56] 1,535.74 ns 8.565 ns 7.593 ns 2.029 ns 1,522.48 ns 1,529.67 ns 1,537.41 ns 1,541.24 ns 1,547.60 ns 651,150.1 1.00 Yes 0.2899 - 1,829 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 307.48 ns 1.264 ns 1.182 ns 0.305 ns 305.13 ns 306.81 ns 307.85 ns 308.25 ns 309.30 ns 3,252,243.2 0.11 No 0.0443 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 2,783.60 ns 7.138 ns 5.573 ns 1.609 ns 2,773.69 ns 2,780.06 ns 2,782.94 ns 2,788.61 ns 2,790.78 ns 359,246.8 1.00 Yes 0.3052 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [56] 176.84 ns 0.554 ns 0.518 ns 0.134 ns 176.06 ns 176.55 ns 176.68 ns 177.14 ns 177.84 ns 5,654,974.1 0.04 No 0.0365 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [56] 4,468.33 ns 7.634 ns 6.767 ns 1.809 ns 4,456.60 ns 4,464.67 ns 4,468.14 ns 4,474.71 ns 4,476.80 ns 223,797.4 1.00 Yes 0.2594 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [56] 178.76 ns 0.918 ns 0.814 ns 0.217 ns 177.65 ns 178.14 ns 178.79 ns 179.15 ns 180.56 ns 5,594,211.4 0.04 No 0.0365 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [56] 4,419.45 ns 7.875 ns 6.981 ns 1.866 ns 4,411.23 ns 4,413.09 ns 4,419.41 ns 4,424.28 ns 4,434.06 ns 226,272.7 1.00 Yes 0.2594 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [58] 84.25 ns 0.437 ns 0.365 ns 0.101 ns 83.76 ns 83.92 ns 84.25 ns 84.49 ns 84.86 ns 11,869,535.4 0.08 No 0.0248 - 208 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [58] 1,079.16 ns 3.920 ns 3.475 ns 0.929 ns 1,075.21 ns 1,076.94 ns 1,077.88 ns 1,080.69 ns 1,086.31 ns 926,647.7 1.00 Yes 0.1698 - 1,424 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [58] 68.17 ns 0.640 ns 0.598 ns 0.154 ns 67.14 ns 67.86 ns 67.95 ns 68.65 ns 69.15 ns 14,668,706.2 0.07 No 0.0249 - 208 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [58] 953.77 ns 3.245 ns 3.036 ns 0.784 ns 949.07 ns 951.53 ns 954.33 ns 955.96 ns 958.15 ns 1,048,471.2 1.00 Yes 0.1698 - 1,424 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [58] 131.39 ns 1.312 ns 1.228 ns 0.317 ns 129.86 ns 130.27 ns 131.20 ns 132.41 ns 133.25 ns 7,611,142.1 0.08 No 0.0355 - 225 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [58] 1,694.62 ns 10.241 ns 8.551 ns 2.372 ns 1,683.06 ns 1,690.55 ns 1,691.64 ns 1,694.89 ns 1,713.31 ns 590,103.3 1.00 Yes 0.2556 - 1,621 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 409.13 ns 1.222 ns 1.143 ns 0.295 ns 407.47 ns 408.36 ns 408.72 ns 409.87 ns 411.97 ns 2,444,188.3 0.13 No 0.0539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 3,154.35 ns 10.074 ns 8.412 ns 2.333 ns 3,143.55 ns 3,149.39 ns 3,151.29 ns 3,156.36 ns 3,173.56 ns 317,022.1 1.00 Yes 0.2670 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [58] 249.52 ns 0.354 ns 0.314 ns 0.084 ns 248.84 ns 249.38 ns 249.52 ns 249.73 ns 250.00 ns 4,007,694.5 0.05 No 0.0424 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [58] 5,238.29 ns 15.520 ns 12.960 ns 3.594 ns 5,222.96 ns 5,230.48 ns 5,234.41 ns 5,249.36 ns 5,269.49 ns 190,901.8 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [58] 250.89 ns 0.425 ns 0.355 ns 0.099 ns 250.25 ns 250.68 ns 250.97 ns 251.16 ns 251.43 ns 3,985,786.6 0.05 No 0.0424 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [58] 5,297.34 ns 23.210 ns 21.711 ns 5.606 ns 5,269.93 ns 5,281.78 ns 5,286.93 ns 5,315.98 ns 5,335.87 ns 188,774.0 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...) list [66] 82.49 ns 0.657 ns 0.582 ns 0.156 ns 81.70 ns 82.21 ns 82.30 ns 82.80 ns 83.46 ns 12,122,927.2 0.08 No 0.0277 - 232 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...) list [66] 1,063.43 ns 3.260 ns 3.049 ns 0.787 ns 1,059.34 ns 1,060.86 ns 1,063.61 ns 1,065.41 ns 1,069.99 ns 940,349.0 1.00 Yes 0.1717 - 1,448 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...) list [66] 70.64 ns 0.459 ns 0.407 ns 0.109 ns 69.95 ns 70.39 ns 70.55 ns 70.87 ns 71.65 ns 14,156,222.3 0.07 No 0.0277 - 232 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...) list [66] 953.77 ns 2.285 ns 1.908 ns 0.529 ns 951.57 ns 952.42 ns 953.47 ns 954.73 ns 957.02 ns 1,048,465.4 1.00 Yes 0.1726 - 1,448 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...) list [66] 128.25 ns 0.344 ns 0.322 ns 0.083 ns 127.67 ns 128.06 ns 128.20 ns 128.43 ns 128.92 ns 7,797,030.2 0.07 No 0.0368 - 233 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...) list [66] 1,731.35 ns 7.945 ns 6.635 ns 1.840 ns 1,724.40 ns 1,726.30 ns 1,730.29 ns 1,734.57 ns 1,747.63 ns 577,584.7 1.00 Yes 0.2575 - 1,629 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 405.82 ns 0.822 ns 0.642 ns 0.185 ns 404.54 ns 405.22 ns 406.06 ns 406.23 ns 406.52 ns 2,464,167.5 0.13 No 0.0591 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 3,122.79 ns 6.530 ns 5.789 ns 1.547 ns 3,112.50 ns 3,119.19 ns 3,122.12 ns 3,126.29 ns 3,135.81 ns 320,226.6 1.00 Yes 0.2747 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...) list [66] 248.27 ns 0.711 ns 0.665 ns 0.172 ns 247.10 ns 247.77 ns 248.43 ns 248.64 ns 249.50 ns 4,027,907.7 0.05 No 0.0477 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...) list [66] 5,198.89 ns 10.513 ns 9.320 ns 2.491 ns 5,185.17 ns 5,191.61 ns 5,197.90 ns 5,205.56 ns 5,219.02 ns 192,348.6 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...) list [66] 253.70 ns 2.862 ns 2.389 ns 0.663 ns 251.41 ns 252.35 ns 253.01 ns 253.96 ns 259.76 ns 3,941,588.8 0.05 No 0.0477 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...) list [66] 5,190.74 ns 19.302 ns 18.055 ns 4.662 ns 5,168.18 ns 5,178.30 ns 5,189.23 ns 5,199.98 ns 5,227.82 ns 192,650.7 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)is :> [30] 70.10 ns 0.325 ns 0.272 ns 0.075 ns 69.71 ns 69.87 ns 70.07 ns 70.23 ns 70.66 ns 14,264,371.9 0.07 No 0.0172 - 144 B
RegexBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)is :> [30] 1,038.66 ns 4.284 ns 3.344 ns 0.965 ns 1,032.15 ns 1,037.26 ns 1,038.25 ns 1,041.09 ns 1,044.02 ns 962,780.5 1.00 Yes 0.1621 - 1,360 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)is :> [30] 61.07 ns 0.245 ns 0.191 ns 0.055 ns 60.65 ns 61.03 ns 61.10 ns 61.18 ns 61.30 ns 16,375,366.0 0.07 No 0.0172 - 144 B
RegexBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)is :> [30] 889.46 ns 6.370 ns 5.646 ns 1.509 ns 880.77 ns 886.94 ns 889.18 ns 892.71 ns 901.15 ns 1,124,281.6 1.00 Yes 0.1621 - 1,360 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)is :> [30] 111.38 ns 0.424 ns 0.354 ns 0.098 ns 110.93 ns 111.07 ns 111.36 ns 111.62 ns 112.00 ns 8,978,579.7 0.09 No 0.0267 - 168 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)is :> [30] 1,275.48 ns 4.504 ns 4.213 ns 1.088 ns 1,269.76 ns 1,272.24 ns 1,274.66 ns 1,278.15 ns 1,283.27 ns 784,017.2 1.00 Yes 0.2422 - 1,533 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 361.56 ns 2.340 ns 2.189 ns 0.565 ns 358.98 ns 360.18 ns 360.79 ns 363.09 ns 365.72 ns 2,765,815.9 0.14 No 0.0343 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 2,500.16 ns 6.565 ns 6.141 ns 1.586 ns 2,492.50 ns 2,495.83 ns 2,498.48 ns 2,503.85 ns 2,510.76 ns 399,974.1 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)is :> [30] 208.50 ns 0.516 ns 0.403 ns 0.116 ns 207.90 ns 208.19 ns 208.44 ns 208.77 ns 209.16 ns 4,796,252.0 0.05 No 0.0267 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)is :> [30] 4,475.02 ns 7.979 ns 6.663 ns 1.848 ns 4,466.62 ns 4,469.32 ns 4,474.14 ns 4,479.57 ns 4,488.18 ns 223,462.9 1.00 Yes 0.2213 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)is :> [30] 210.55 ns 2.318 ns 2.168 ns 0.560 ns 208.54 ns 208.89 ns 209.45 ns 212.04 ns 215.05 ns 4,749,369.3 0.05 No 0.0267 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)is :> [30] 4,460.72 ns 10.595 ns 8.848 ns 2.454 ns 4,445.76 ns 4,454.13 ns 4,461.25 ns 4,468.46 ns 4,471.80 ns 224,179.0 1.00 Yes 0.2213 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)rship [80] 84.79 ns 0.605 ns 0.536 ns 0.143 ns 83.81 ns 84.49 ns 84.68 ns 85.16 ns 86.00 ns 11,793,519.0 0.08 No 0.0296 - 248 B
RegexBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)rship [80] 1,068.44 ns 2.796 ns 2.334 ns 0.647 ns 1,065.27 ns 1,066.08 ns 1,068.45 ns 1,070.36 ns 1,072.19 ns 935,941.9 1.00 Yes 0.1736 - 1,464 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)rship [80] 69.21 ns 0.450 ns 0.421 ns 0.109 ns 68.68 ns 68.72 ns 69.19 ns 69.53 ns 69.97 ns 14,447,904.5 0.08 No 0.0296 - 248 B
RegexBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)rship [80] 919.51 ns 2.281 ns 2.134 ns 0.551 ns 915.72 ns 917.76 ns 919.05 ns 921.28 ns 922.60 ns 1,087,536.9 1.00 Yes 0.1745 - 1,464 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)rship [80] 118.55 ns 0.447 ns 0.396 ns 0.106 ns 117.99 ns 118.30 ns 118.50 ns 118.72 ns 119.40 ns 8,435,491.6 0.06 No 0.0420 - 265 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)rship [80] 1,836.52 ns 15.150 ns 14.171 ns 3.659 ns 1,821.90 ns 1,825.85 ns 1,834.46 ns 1,843.20 ns 1,868.96 ns 544,507.7 1.00 Yes 0.2575 - 1,629 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 352.62 ns 0.777 ns 0.649 ns 0.180 ns 351.50 ns 352.42 ns 352.89 ns 353.15 ns 353.36 ns 2,835,916.2 0.11 No 0.0558 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 3,282.52 ns 5.705 ns 5.337 ns 1.378 ns 3,274.53 ns 3,278.95 ns 3,283.47 ns 3,286.28 ns 3,293.63 ns 304,644.0 1.00 Yes 0.2708 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)rship [80] 209.31 ns 0.478 ns 0.399 ns 0.111 ns 208.80 ns 209.03 ns 209.25 ns 209.49 ns 210.32 ns 4,777,559.4 0.04 No 0.0520 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)rship [80] 5,356.50 ns 5.906 ns 5.524 ns 1.426 ns 5,347.76 ns 5,352.80 ns 5,355.47 ns 5,359.27 ns 5,366.63 ns 186,689.1 1.00 Yes 0.2518 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)rship [80] 210.07 ns 1.021 ns 0.905 ns 0.242 ns 209.27 ns 209.44 ns 209.80 ns 210.12 ns 212.02 ns 4,760,322.6 0.04 No 0.0520 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)rship [80] 5,347.90 ns 9.985 ns 9.340 ns 2.412 ns 5,335.81 ns 5,340.72 ns 5,349.31 ns 5,354.84 ns 5,366.82 ns 186,989.2 1.00 Yes 0.2518 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)tle. [539] 187.96 ns 0.876 ns 0.684 ns 0.197 ns 186.77 ns 187.45 ns 188.02 ns 188.50 ns 189.08 ns 5,320,287.5 0.15 No 0.1423 - 1,192 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)tle. [539] 1,294.39 ns 3.531 ns 3.303 ns 0.853 ns 1,289.28 ns 1,291.89 ns 1,294.79 ns 1,296.53 ns 1,299.81 ns 772,567.0 1.00 Yes 0.3071 - 2,584 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)tle. [539] 181.60 ns 0.706 ns 0.589 ns 0.163 ns 180.83 ns 181.27 ns 181.59 ns 181.87 ns 183.03 ns 5,506,684.1 0.16 No 0.1425 - 1,192 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)tle. [539] 1,118.79 ns 6.746 ns 6.310 ns 1.629 ns 1,108.98 ns 1,113.71 ns 1,119.39 ns 1,122.62 ns 1,131.58 ns 893,826.7 1.00 Yes 0.3071 - 2,584 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)tle. [539] 238.10 ns 0.675 ns 0.598 ns 0.160 ns 236.96 ns 237.75 ns 238.03 ns 238.45 ns 239.16 ns 4,199,851.4 0.04 No 0.1910 - 1,204 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)tle. [539] 6,574.75 ns 60.059 ns 56.179 ns 14.505 ns 6,519.89 ns 6,526.91 ns 6,571.88 ns 6,598.95 ns 6,700.96 ns 152,096.9 1.00 Yes 0.4501 - 2,880 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 750.54 ns 3.074 ns 2.876 ns 0.743 ns 746.38 ns 748.74 ns 750.24 ns 752.76 ns 757.02 ns 1,332,369.4 0.07 No 0.3252 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 10,024.33 ns 67.130 ns 62.793 ns 16.213 ns 9,957.36 ns 9,975.43 ns 9,997.11 ns 10,058.46 ns 10,142.75 ns 99,757.3 1.00 Yes 0.5646 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)tle. [539] 415.37 ns 0.902 ns 0.843 ns 0.218 ns 414.19 ns 414.72 ns 415.37 ns 415.91 ns 417.35 ns 2,407,491.3 0.03 No 0.2789 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)tle. [539] 12,091.24 ns 21.300 ns 17.787 ns 4.933 ns 12,069.27 ns 12,079.87 ns 12,086.11 ns 12,095.43 ns 12,136.02 ns 82,704.5 1.00 Yes 0.5188 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)tle. [539] 417.03 ns 0.807 ns 0.755 ns 0.195 ns 415.92 ns 416.46 ns 417.12 ns 417.46 ns 418.40 ns 2,397,882.9 0.03 No 0.2789 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)tle. [539] 12,067.90 ns 28.588 ns 26.742 ns 6.905 ns 12,028.73 ns 12,047.58 ns 12,066.97 ns 12,084.15 ns 12,123.48 ns 82,864.5 1.00 Yes 0.5188 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)sted [432] 174.14 ns 0.986 ns 0.922 ns 0.238 ns 172.76 ns 173.37 ns 174.23 ns 174.61 ns 176.17 ns 5,742,481.5 0.14 No 0.1166 - 976 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)sted [432] 1,265.91 ns 4.470 ns 4.182 ns 1.080 ns 1,259.18 ns 1,263.08 ns 1,265.72 ns 1,269.70 ns 1,271.16 ns 789,947.3 1.00 Yes 0.2823 - 2,368 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)sted [432] 164.09 ns 1.844 ns 1.635 ns 0.437 ns 162.55 ns 163.07 ns 163.60 ns 164.65 ns 167.56 ns 6,094,302.0 0.13 No 0.1166 - 976 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)sted [432] 1,223.23 ns 11.862 ns 10.516 ns 2.810 ns 1,213.10 ns 1,214.97 ns 1,221.19 ns 1,226.22 ns 1,248.63 ns 817,506.6 1.00 Yes 0.2823 - 2,368 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)sted [432] 227.54 ns 1.095 ns 0.914 ns 0.254 ns 225.77 ns 227.01 ns 227.81 ns 228.10 ns 229.03 ns 4,394,791.5 0.04 No 0.1566 - 987 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)sted [432] 5,482.05 ns 43.233 ns 40.440 ns 10.442 ns 5,418.13 ns 5,452.05 ns 5,467.38 ns 5,512.66 ns 5,554.89 ns 182,413.6 1.00 Yes 0.4196 - 2,664 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 695.01 ns 4.367 ns 3.871 ns 1.035 ns 690.55 ns 692.49 ns 693.82 ns 697.03 ns 704.73 ns 1,438,821.5 0.08 No 0.2441 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 8,544.20 ns 30.453 ns 28.486 ns 7.355 ns 8,504.17 ns 8,520.40 ns 8,538.84 ns 8,558.49 ns 8,596.22 ns 117,038.4 1.00 Yes 0.5035 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)sted [432] 412.13 ns 2.590 ns 2.423 ns 0.626 ns 409.91 ns 410.39 ns 411.13 ns 413.51 ns 417.41 ns 2,426,427.3 0.04 No 0.2441 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)sted [432] 10,571.13 ns 20.189 ns 17.897 ns 4.783 ns 10,547.34 ns 10,558.23 ns 10,570.13 ns 10,579.75 ns 10,610.10 ns 94,597.2 1.00 Yes 0.4883 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)sted [432] 412.95 ns 2.480 ns 2.198 ns 0.587 ns 410.43 ns 410.93 ns 412.77 ns 414.51 ns 417.17 ns 2,421,577.5 0.04 No 0.2441 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)sted [432] 10,610.20 ns 30.215 ns 28.263 ns 7.298 ns 10,575.76 ns 10,591.92 ns 10,608.44 ns 10,626.91 ns 10,677.09 ns 94,248.9 1.00 Yes 0.4883 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)Heya [361] 158.47 ns 1.106 ns 0.981 ns 0.262 ns 156.39 ns 157.91 ns 158.40 ns 159.01 ns 160.27 ns 6,310,440.6 0.13 No 0.0994 - 832 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)Heya [361] 1,265.60 ns 3.659 ns 3.422 ns 0.884 ns 1,259.95 ns 1,263.46 ns 1,266.19 ns 1,267.99 ns 1,270.90 ns 790,137.0 1.00 Yes 0.2651 - 2,224 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)Heya [361] 147.09 ns 0.688 ns 0.643 ns 0.166 ns 146.01 ns 146.69 ns 147.01 ns 147.61 ns 148.37 ns 6,798,781.8 0.14 No 0.0994 - 832 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)Heya [361] 1,074.89 ns 4.740 ns 3.958 ns 1.098 ns 1,070.92 ns 1,072.80 ns 1,073.69 ns 1,075.49 ns 1,085.13 ns 930,327.4 1.00 Yes 0.2651 0.0010 2,224 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)Heya [361] 215.54 ns 0.828 ns 0.734 ns 0.196 ns 214.34 ns 215.11 ns 215.59 ns 215.92 ns 217.17 ns 4,639,475.3 0.05 No 0.1361 - 859 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)Heya [361] 4,773.69 ns 29.757 ns 27.835 ns 7.187 ns 4,709.71 ns 4,775.91 ns 4,781.01 ns 4,791.54 ns 4,802.65 ns 209,481.8 1.00 Yes 0.3967 - 2,519 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 687.30 ns 2.639 ns 2.204 ns 0.611 ns 684.12 ns 685.54 ns 686.59 ns 688.77 ns 691.37 ns 1,454,959.5 0.09 No 0.2241 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 7,484.77 ns 20.474 ns 19.151 ns 4.945 ns 7,465.97 ns 7,470.10 ns 7,476.78 ns 7,493.77 ns 7,523.47 ns 133,604.7 1.00 Yes 0.4883 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)Heya [361] 390.35 ns 0.456 ns 0.380 ns 0.105 ns 389.54 ns 390.16 ns 390.28 ns 390.61 ns 391.04 ns 2,561,804.8 0.04 No 0.1955 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)Heya [361] 9,566.60 ns 12.021 ns 10.656 ns 2.848 ns 9,546.27 ns 9,558.63 ns 9,568.57 ns 9,573.96 ns 9,584.18 ns 104,530.4 1.00 Yes 0.4272 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)Heya [361] 389.01 ns 0.561 ns 0.468 ns 0.130 ns 388.40 ns 388.55 ns 389.01 ns 389.40 ns 389.93 ns 2,570,620.5 0.04 No 0.1955 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)Heya [361] 9,548.11 ns 16.415 ns 15.354 ns 3.964 ns 9,523.74 ns 9,538.60 ns 9,545.55 ns 9,558.75 ns 9,575.84 ns 104,732.8 1.00 Yes 0.4272 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)op p [857] 257.26 ns 1.309 ns 1.093 ns 0.303 ns 255.91 ns 256.37 ns 257.09 ns 257.69 ns 259.37 ns 3,887,162.8 0.17 No 0.2179 - 1,824 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)op p [857] 1,486.25 ns 3.849 ns 3.214 ns 0.891 ns 1,481.36 ns 1,485.03 ns 1,486.73 ns 1,488.41 ns 1,492.33 ns 672,833.0 1.00 Yes 0.3834 - 3,216 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)op p [857] 249.45 ns 0.676 ns 0.528 ns 0.152 ns 248.64 ns 248.90 ns 249.62 ns 249.79 ns 250.10 ns 4,008,803.0 0.21 No 0.2179 - 1,824 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)op p [857] 1,197.27 ns 5.513 ns 4.603 ns 1.277 ns 1,190.36 ns 1,193.11 ns 1,196.81 ns 1,200.18 ns 1,204.87 ns 835,232.5 1.00 Yes 0.3834 - 3,216 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)op p [857] 309.44 ns 1.285 ns 1.139 ns 0.304 ns 307.98 ns 308.69 ns 309.22 ns 310.21 ns 311.57 ns 3,231,596.3 0.03 No 0.2944 - 1,853 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)op p [857] 9,804.56 ns 41.434 ns 36.730 ns 9.816 ns 9,755.53 ns 9,778.71 ns 9,801.33 ns 9,822.28 ns 9,873.71 ns 101,993.4 1.00 Yes 0.5493 - 3,514 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 913.65 ns 2.422 ns 2.266 ns 0.585 ns 909.75 ns 912.03 ns 913.86 ns 915.14 ns 917.27 ns 1,094,511.1 0.06 No 0.4883 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 14,729.86 ns 269.009 ns 251.631 ns 64.971 ns 14,418.44 ns 14,489.71 ns 14,819.04 ns 14,920.24 ns 15,097.62 ns 67,889.3 1.00 Yes 0.7324 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)op p [857] 487.32 ns 2.117 ns 1.980 ns 0.511 ns 484.03 ns 485.75 ns 486.92 ns 489.42 ns 490.56 ns 2,052,045.5 0.03 No 0.4683 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)op p [857] 16,530.86 ns 31.995 ns 29.928 ns 7.727 ns 16,484.24 ns 16,501.10 ns 16,535.53 ns 16,552.35 ns 16,580.76 ns 60,492.9 1.00 Yes 0.6714 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)op p [857] 472.40 ns 1.073 ns 0.952 ns 0.254 ns 470.50 ns 471.91 ns 472.24 ns 472.77 ns 474.49 ns 2,116,869.9 0.03 No 0.4683 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)op p [857] 16,488.77 ns 25.187 ns 22.328 ns 5.967 ns 16,458.59 ns 16,469.74 ns 16,486.16 ns 16,506.86 ns 16,525.58 ns 60,647.3 1.00 Yes 0.6714 - -

IRC (chat) message tags deconstruction

Partial clarification on this can be found here.
However, this resultset also contains a whole of implementations that aren't covered in there, and thus I also recommend taking a look at the actual benchmark class. This one is also linked in the clarification above.

Click to expand!

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-CIRMVA : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT
  • Job-NVAYXH : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
  • Job-ZSFKTD : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
  • Job-UGEEKR : Mono 6.13.0 (Visual Studio), X86
  • Job-LJOXDK : Mono 6.13.0 (Visual Studio), X86
Method Job Runtime Message Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmarkV3 Job-CIRMVA .NET 5.0 badg(...)ype= [203] 696.5 ns 3.51 ns 3.29 ns 0.85 ns 690.7 ns 694.4 ns 696.7 ns 698.4 ns 703.6 ns 1,435,758.9 0.14 No 0.1965 0.0010 1,648 B
SpanDissectionBenchmarkV2Broken Job-CIRMVA .NET 5.0 badg(...)ype= [203] 879.3 ns 4.31 ns 3.82 ns 1.02 ns 873.4 ns 877.1 ns 879.0 ns 880.9 ns 888.2 ns 1,137,242.5 0.18 No 0.2108 0.0019 1,768 B
SpanDissectionBenchmarkBroken Job-CIRMVA .NET 5.0 badg(...)ype= [203] 908.1 ns 4.46 ns 3.95 ns 1.06 ns 901.3 ns 904.9 ns 909.4 ns 910.9 ns 914.7 ns 1,101,189.3 0.19 No 0.2108 0.0019 1,768 B
SpanDissectionBenchmarkV2 Job-CIRMVA .NET 5.0 badg(...)ype= [203] 915.9 ns 5.05 ns 4.22 ns 1.17 ns 910.7 ns 911.6 ns 915.5 ns 918.8 ns 922.8 ns 1,091,862.1 0.19 No 0.2241 0.0019 1,880 B
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [203] 951.6 ns 2.00 ns 1.87 ns 0.48 ns 948.4 ns 950.0 ns 951.7 ns 953.2 ns 954.4 ns 1,050,840.8 0.20 No 0.2241 0.0019 1,880 B
LinqSplitBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [203] 1,840.0 ns 6.44 ns 5.38 ns 1.49 ns 1,828.0 ns 1,838.0 ns 1,841.4 ns 1,843.1 ns 1,848.4 ns 543,463.5 0.38 No 0.4005 0.0057 3,360 B
ChatCoreBaselineBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [203] 4,826.0 ns 11.95 ns 10.60 ns 2.83 ns 4,807.5 ns 4,821.9 ns 4,828.1 ns 4,832.7 ns 4,845.2 ns 207,212.8 1.00 Yes 0.7095 0.0153 5,944 B
RegexDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [203] 5,776.0 ns 12.76 ns 11.31 ns 3.02 ns 5,757.7 ns 5,765.2 ns 5,777.6 ns 5,785.5 ns 5,790.4 ns 173,129.5 1.20 No 1.1139 0.0381 9,352 B
SpanDissectionBenchmarkV3 Job-NVAYXH .NET 6.0 badg(...)ype= [203] 727.1 ns 4.51 ns 3.99 ns 1.07 ns 719.8 ns 724.3 ns 727.3 ns 729.4 ns 733.4 ns 1,375,415.8 0.17 No 0.1965 0.0010 1,648 B
SpanDissectionBenchmarkV2Broken Job-NVAYXH .NET 6.0 badg(...)ype= [203] 805.8 ns 4.74 ns 4.44 ns 1.15 ns 799.9 ns 802.0 ns 805.2 ns 808.7 ns 814.6 ns 1,241,075.5 0.19 No 0.2108 0.0019 1,768 B
SpanDissectionBenchmarkBroken Job-NVAYXH .NET 6.0 badg(...)ype= [203] 820.5 ns 6.46 ns 5.39 ns 1.50 ns 813.3 ns 817.3 ns 820.3 ns 825.0 ns 829.7 ns 1,218,741.1 0.20 No 0.2108 0.0019 1,768 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [203] 831.3 ns 3.78 ns 3.53 ns 0.91 ns 825.9 ns 828.7 ns 831.6 ns 833.9 ns 836.1 ns 1,202,871.2 0.20 No 0.2241 0.0019 1,880 B
SpanDissectionBenchmarkV2 Job-NVAYXH .NET 6.0 badg(...)ype= [203] 835.1 ns 5.66 ns 5.02 ns 1.34 ns 826.0 ns 832.4 ns 835.8 ns 838.9 ns 842.5 ns 1,197,475.7 0.20 No 0.2241 0.0019 1,880 B
LinqSplitBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [203] 1,573.4 ns 5.05 ns 4.73 ns 1.22 ns 1,564.6 ns 1,570.6 ns 1,573.7 ns 1,576.7 ns 1,580.4 ns 635,579.5 0.38 No 0.4005 0.0057 3,360 B
ChatCoreBaselineBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [203] 4,162.0 ns 9.90 ns 8.78 ns 2.35 ns 4,149.3 ns 4,155.3 ns 4,163.0 ns 4,166.4 ns 4,179.3 ns 240,267.6 1.00 Yes 0.7095 0.0153 5,944 B
RegexDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [203] 5,385.9 ns 18.14 ns 16.08 ns 4.30 ns 5,362.7 ns 5,375.1 ns 5,387.8 ns 5,393.4 ns 5,416.1 ns 185,671.6 1.29 No 1.1139 0.0381 9,352 B
SpanDissectionBenchmarkV3 Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 838.5 ns 2.84 ns 2.51 ns 0.67 ns 834.1 ns 836.8 ns 838.5 ns 839.7 ns 842.9 ns 1,192,567.5 0.06 No 0.2747 0.0019 1,733 B
SpanDissectionBenchmarkBroken Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 956.3 ns 1.85 ns 1.74 ns 0.45 ns 953.3 ns 955.2 ns 956.1 ns 957.6 ns 958.9 ns 1,045,686.6 0.06 No 0.2966 0.0029 1,869 B
SpanDissectionBenchmarkV2Broken Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 966.4 ns 1.36 ns 1.21 ns 0.32 ns 964.3 ns 965.8 ns 966.4 ns 966.9 ns 968.8 ns 1,034,780.6 0.07 No 0.2966 0.0029 1,869 B
SpanDissectionBenchmarkV2 Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 972.2 ns 2.66 ns 2.49 ns 0.64 ns 966.4 ns 970.8 ns 971.8 ns 974.2 ns 976.7 ns 1,028,568.9 0.07 No 0.3157 0.0029 1,990 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 984.1 ns 2.37 ns 2.22 ns 0.57 ns 980.6 ns 982.7 ns 983.8 ns 985.1 ns 988.3 ns 1,016,194.3 0.07 No 0.3157 0.0029 1,990 B
LinqSplitBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 2,169.6 ns 20.36 ns 19.05 ns 4.92 ns 2,150.4 ns 2,153.9 ns 2,164.4 ns 2,179.2 ns 2,212.1 ns 460,920.1 0.15 No 0.9499 0.0134 5,986 B
RegexDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 8,255.6 ns 37.03 ns 34.64 ns 8.94 ns 8,199.3 ns 8,230.2 ns 8,253.8 ns 8,284.9 ns 8,306.0 ns 121,130.4 0.56 No 1.6479 0.0458 10,407 B
ChatCoreBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [203] 14,863.6 ns 31.03 ns 25.91 ns 7.19 ns 14,809.7 ns 14,844.1 ns 14,867.4 ns 14,883.2 ns 14,897.5 ns 67,278.6 1.00 Yes 0.9613 0.0153 6,122 B
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,070.2 ns 3.89 ns 3.64 ns 0.94 ns 2,063.7 ns 2,067.0 ns 2,070.2 ns 2,072.7 ns 2,076.5 ns 483,047.6 0.06 No 0.2899 - -
SpanDissectionBenchmarkV2Broken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,531.2 ns 8.51 ns 7.96 ns 2.05 ns 2,520.3 ns 2,525.8 ns 2,528.7 ns 2,536.8 ns 2,545.0 ns 395,066.3 0.07 No 0.3242 - -
SpanDissectionBenchmarkBroken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,546.6 ns 49.00 ns 52.43 ns 12.36 ns 2,494.9 ns 2,499.5 ns 2,521.3 ns 2,601.7 ns 2,625.7 ns 392,685.4 0.07 No 0.3242 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,683.3 ns 8.78 ns 7.78 ns 2.08 ns 2,669.7 ns 2,679.4 ns 2,682.9 ns 2,686.8 ns 2,699.0 ns 372,676.6 0.07 No 0.3395 - -
SpanDissectionBenchmarkV2 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 2,740.7 ns 9.69 ns 8.09 ns 2.24 ns 2,728.7 ns 2,736.2 ns 2,741.5 ns 2,744.7 ns 2,754.3 ns 364,866.6 0.07 No 0.3395 - -
LinqSplitBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 5,018.7 ns 19.87 ns 18.59 ns 4.80 ns 4,980.1 ns 5,011.4 ns 5,020.8 ns 5,027.7 ns 5,046.8 ns 199,253.2 0.13 No 1.1368 - -
RegexDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 21,682.0 ns 54.37 ns 42.45 ns 12.25 ns 21,626.2 ns 21,643.5 ns 21,680.3 ns 21,731.6 ns 21,733.3 ns 46,121.3 0.58 No 1.6174 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [203] 37,637.0 ns 103.03 ns 96.38 ns 24.88 ns 37,502.9 ns 37,580.6 ns 37,595.8 ns 37,720.6 ns 37,803.8 ns 26,569.6 1.00 Yes 0.9766 - -
SpanDissectionBenchmarkV3 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 1,626.0 ns 5.82 ns 5.44 ns 1.40 ns 1,615.9 ns 1,622.9 ns 1,627.3 ns 1,629.1 ns 1,634.8 ns 615,014.7 0.04 No 0.2918 - -
SpanDissectionBenchmarkV2Broken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 1,992.2 ns 8.73 ns 7.29 ns 2.02 ns 1,983.4 ns 1,985.7 ns 1,993.2 ns 1,995.8 ns 2,009.2 ns 501,964.4 0.05 No 0.3242 - -
SpanDissectionBenchmarkBroken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 2,023.7 ns 11.42 ns 9.53 ns 2.64 ns 2,011.7 ns 2,015.5 ns 2,021.5 ns 2,028.6 ns 2,043.3 ns 494,153.4 0.05 No 0.3242 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 2,118.5 ns 2.44 ns 2.16 ns 0.58 ns 2,115.6 ns 2,117.1 ns 2,117.7 ns 2,120.2 ns 2,123.0 ns 472,023.0 0.05 No 0.3395 - -
SpanDissectionBenchmarkV2 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 2,130.8 ns 5.65 ns 5.01 ns 1.34 ns 2,122.7 ns 2,127.0 ns 2,131.2 ns 2,134.9 ns 2,138.0 ns 469,312.2 0.05 No 0.3395 - -
LinqSplitBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 4,165.9 ns 22.13 ns 18.48 ns 5.13 ns 4,140.2 ns 4,154.8 ns 4,165.9 ns 4,174.3 ns 4,199.4 ns 240,044.9 0.10 No 0.6790 - -
RegexDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 19,804.6 ns 76.14 ns 71.22 ns 18.39 ns 19,704.4 ns 19,749.6 ns 19,793.8 ns 19,846.1 ns 19,945.7 ns 50,493.4 0.49 No 1.6174 - -
ChatCoreBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [203] 40,279.8 ns 63.79 ns 59.67 ns 15.41 ns 40,186.9 ns 40,234.3 ns 40,271.7 ns 40,319.9 ns 40,385.7 ns 24,826.3 1.00 Yes 0.9766 - -
SpanDissectionBenchmarkV3 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 1,632.6 ns 4.43 ns 3.46 ns 1.00 ns 1,627.4 ns 1,630.2 ns 1,632.4 ns 1,635.3 ns 1,638.6 ns 612,506.1 0.04 No 0.2918 - -
SpanDissectionBenchmarkV2Broken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 1,967.6 ns 5.25 ns 4.65 ns 1.24 ns 1,959.4 ns 1,964.3 ns 1,966.9 ns 1,971.2 ns 1,976.4 ns 508,242.5 0.05 No 0.3242 - -
SpanDissectionBenchmarkBroken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 2,000.2 ns 3.69 ns 3.45 ns 0.89 ns 1,993.4 ns 1,998.6 ns 2,001.8 ns 2,002.3 ns 2,007.0 ns 499,958.3 0.05 No 0.3242 - -
SpanDissectionBenchmarkV2 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 2,082.5 ns 3.67 ns 3.25 ns 0.87 ns 2,076.7 ns 2,080.3 ns 2,082.8 ns 2,084.7 ns 2,087.7 ns 480,196.0 0.05 No 0.3395 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 2,089.5 ns 8.31 ns 7.37 ns 1.97 ns 2,077.6 ns 2,083.5 ns 2,090.3 ns 2,093.9 ns 2,100.9 ns 478,576.4 0.05 No 0.3395 - -
LinqSplitBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 4,157.2 ns 9.38 ns 8.77 ns 2.26 ns 4,140.2 ns 4,151.3 ns 4,162.1 ns 4,162.9 ns 4,167.4 ns 240,545.9 0.10 No 0.6790 - -
RegexDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 19,766.7 ns 31.25 ns 29.23 ns 7.55 ns 19,701.2 ns 19,749.9 ns 19,772.9 ns 19,792.5 ns 19,804.9 ns 50,590.2 0.48 No 1.6174 - -
ChatCoreBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [203] 40,767.2 ns 53.17 ns 47.14 ns 12.60 ns 40,702.6 ns 40,732.6 ns 40,760.9 ns 40,784.2 ns 40,849.5 ns 24,529.5 1.00 Yes 0.9766 - -
SpanDissectionBenchmarkV2Broken Job-CIRMVA .NET 5.0 badg(...)=mod [299] 975.8 ns 3.27 ns 2.73 ns 0.76 ns 971.3 ns 974.6 ns 975.8 ns 976.7 ns 980.8 ns 1,024,844.3 0.16 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmarkBroken Job-CIRMVA .NET 5.0 badg(...)=mod [299] 988.4 ns 3.18 ns 2.82 ns 0.75 ns 983.3 ns 987.1 ns 988.5 ns 990.4 ns 992.4 ns 1,011,780.2 0.16 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmarkV2 Job-CIRMVA .NET 5.0 badg(...)=mod [299] 1,014.2 ns 3.89 ns 3.25 ns 0.90 ns 1,008.0 ns 1,012.3 ns 1,014.1 ns 1,014.8 ns 1,020.0 ns 986,036.5 0.16 No 0.2613 0.0029 2,192 B
SpanDissectionBenchmarkV3 Job-CIRMVA .NET 5.0 badg(...)=mod [299] 1,035.5 ns 6.90 ns 6.45 ns 1.67 ns 1,029.2 ns 1,030.1 ns 1,033.3 ns 1,039.5 ns 1,048.8 ns 965,710.8 0.17 No 0.2565 0.0029 2,152 B
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)=mod [299] 1,048.8 ns 6.14 ns 5.74 ns 1.48 ns 1,037.3 ns 1,045.7 ns 1,047.5 ns 1,051.9 ns 1,059.1 ns 953,455.6 0.17 No 0.2613 0.0029 2,192 B
LinqSplitBenchmark Job-CIRMVA .NET 5.0 badg(...)=mod [299] 2,147.3 ns 8.95 ns 8.37 ns 2.16 ns 2,132.2 ns 2,142.1 ns 2,144.7 ns 2,151.9 ns 2,161.0 ns 465,695.2 0.34 No 0.4711 0.0076 3,952 B
ChatCoreBaselineBenchmark Job-CIRMVA .NET 5.0 badg(...)=mod [299] 6,257.1 ns 22.31 ns 19.78 ns 5.29 ns 6,233.6 ns 6,240.2 ns 6,252.2 ns 6,273.3 ns 6,291.3 ns 159,818.3 1.00 Yes 1.0834 0.0381 9,120 B
RegexDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)=mod [299] 7,553.1 ns 18.74 ns 17.53 ns 4.53 ns 7,533.4 ns 7,542.1 ns 7,545.2 ns 7,562.1 ns 7,588.5 ns 132,396.6 1.21 No 1.2131 0.0458 10,200 B
SpanDissectionBenchmarkV3 Job-NVAYXH .NET 6.0 badg(...)=mod [299] 942.5 ns 1.79 ns 1.39 ns 0.40 ns 939.9 ns 941.7 ns 942.7 ns 943.6 ns 944.3 ns 1,060,994.6 0.17 No 0.2565 0.0029 2,152 B
SpanDissectionBenchmarkBroken Job-NVAYXH .NET 6.0 badg(...)=mod [299] 981.7 ns 4.49 ns 4.20 ns 1.09 ns 974.5 ns 979.4 ns 981.4 ns 983.8 ns 989.5 ns 1,018,603.8 0.18 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmarkV2Broken Job-NVAYXH .NET 6.0 badg(...)=mod [299] 983.1 ns 3.62 ns 3.38 ns 0.87 ns 977.4 ns 981.4 ns 982.9 ns 985.4 ns 990.7 ns 1,017,169.0 0.18 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)=mod [299] 988.6 ns 2.71 ns 2.12 ns 0.61 ns 985.2 ns 987.1 ns 988.4 ns 990.0 ns 992.0 ns 1,011,522.4 0.18 No 0.2613 0.0029 2,192 B
SpanDissectionBenchmarkV2 Job-NVAYXH .NET 6.0 badg(...)=mod [299] 1,059.2 ns 7.07 ns 6.27 ns 1.68 ns 1,047.5 ns 1,055.1 ns 1,058.4 ns 1,064.7 ns 1,068.8 ns 944,119.6 0.19 No 0.2613 0.0029 2,192 B
LinqSplitBenchmark Job-NVAYXH .NET 6.0 badg(...)=mod [299] 1,773.5 ns 9.89 ns 9.25 ns 2.39 ns 1,755.5 ns 1,768.6 ns 1,773.8 ns 1,781.8 ns 1,787.4 ns 563,855.1 0.32 No 0.4711 0.0076 3,952 B
ChatCoreBaselineBenchmark Job-NVAYXH .NET 6.0 badg(...)=mod [299] 5,540.8 ns 38.08 ns 33.76 ns 9.02 ns 5,495.5 ns 5,516.4 ns 5,529.2 ns 5,559.0 ns 5,607.2 ns 180,480.5 1.00 Yes 1.0834 0.0381 9,120 B
RegexDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)=mod [299] 7,071.2 ns 42.17 ns 35.22 ns 9.77 ns 7,023.3 ns 7,043.6 ns 7,059.8 ns 7,098.8 ns 7,139.0 ns 141,418.5 1.28 No 1.2131 0.0458 10,200 B
SpanDissectionBenchmarkV2Broken Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 1,181.6 ns 3.98 ns 3.72 ns 0.96 ns 1,174.1 ns 1,179.6 ns 1,181.3 ns 1,183.9 ns 1,187.9 ns 846,304.3 0.09 No 0.3433 0.0038 2,174 B
SpanDissectionBenchmarkBroken Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 1,184.3 ns 8.16 ns 7.63 ns 1.97 ns 1,170.6 ns 1,179.3 ns 1,185.9 ns 1,190.3 ns 1,195.3 ns 844,350.8 0.09 No 0.3433 0.0038 2,174 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 1,209.3 ns 7.67 ns 7.18 ns 1.85 ns 1,196.3 ns 1,204.9 ns 1,207.6 ns 1,214.1 ns 1,222.9 ns 826,937.3 0.09 No 0.3662 0.0038 2,319 B
SpanDissectionBenchmarkV2 Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 1,212.5 ns 4.59 ns 4.29 ns 1.11 ns 1,204.5 ns 1,209.5 ns 1,211.7 ns 1,214.9 ns 1,221.0 ns 824,741.2 0.09 No 0.3662 0.0038 2,319 B
SpanDissectionBenchmarkV3 Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 1,230.5 ns 5.14 ns 4.56 ns 1.22 ns 1,223.2 ns 1,228.0 ns 1,230.7 ns 1,233.9 ns 1,239.6 ns 812,693.1 0.09 No 0.3586 0.0038 2,271 B
LinqSplitBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 2,528.4 ns 6.04 ns 5.35 ns 1.43 ns 2,517.0 ns 2,524.9 ns 2,529.8 ns 2,531.9 ns 2,535.6 ns 395,506.9 0.19 No 1.1826 0.0191 7,454 B
RegexDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 10,509.6 ns 43.86 ns 41.03 ns 10.59 ns 10,433.1 ns 10,485.2 ns 10,515.9 ns 10,529.3 ns 10,589.8 ns 95,150.9 0.80 No 1.7853 0.0610 11,337 B
ChatCoreBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)=mod [299] 13,201.8 ns 57.69 ns 53.97 ns 13.93 ns 13,114.0 ns 13,154.8 ns 13,219.9 ns 13,248.8 ns 13,273.5 ns 75,747.1 1.00 Yes 1.4648 0.0458 9,339 B
SpanDissectionBenchmarkV2Broken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,123.4 ns 7.90 ns 7.39 ns 1.91 ns 3,112.3 ns 3,118.9 ns 3,123.2 ns 3,128.3 ns 3,138.2 ns 320,166.4 0.14 No 0.3891 - -
SpanDissectionBenchmarkBroken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,144.3 ns 11.76 ns 9.82 ns 2.72 ns 3,124.6 ns 3,135.9 ns 3,144.5 ns 3,150.3 ns 3,159.1 ns 318,035.9 0.14 No 0.3891 - -
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,153.1 ns 9.45 ns 7.89 ns 2.19 ns 3,142.6 ns 3,147.9 ns 3,151.6 ns 3,156.1 ns 3,169.4 ns 317,147.3 0.14 No 0.3967 - -
SpanDissectionBenchmarkV2 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,273.2 ns 9.86 ns 9.23 ns 2.38 ns 3,257.0 ns 3,267.5 ns 3,271.1 ns 3,280.7 ns 3,287.8 ns 305,515.2 0.15 No 0.4044 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 3,325.0 ns 9.05 ns 8.02 ns 2.14 ns 3,310.4 ns 3,319.8 ns 3,325.9 ns 3,328.1 ns 3,341.1 ns 300,751.7 0.15 No 0.4044 - -
LinqSplitBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 6,247.3 ns 9.77 ns 9.14 ns 2.36 ns 6,233.5 ns 6,240.6 ns 6,245.9 ns 6,250.6 ns 6,265.1 ns 160,070.0 0.28 No 1.4648 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 22,426.2 ns 31.40 ns 27.84 ns 7.44 ns 22,372.5 ns 22,406.9 ns 22,428.9 ns 22,446.1 ns 22,472.9 ns 44,590.6 1.00 Yes 1.4954 - -
RegexDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)=mod [299] 31,604.3 ns 30.48 ns 27.02 ns 7.22 ns 31,551.8 ns 31,587.6 ns 31,604.8 ns 31,624.5 ns 31,642.6 ns 31,641.2 1.41 No 1.7700 - -
SpanDissectionBenchmarkBroken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 2,426.4 ns 9.11 ns 7.11 ns 2.05 ns 2,412.7 ns 2,423.8 ns 2,426.0 ns 2,432.6 ns 2,434.6 ns 412,141.5 0.08 No 0.3891 - -
SpanDissectionBenchmarkV2Broken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 2,437.8 ns 5.69 ns 5.32 ns 1.37 ns 2,429.4 ns 2,433.3 ns 2,439.1 ns 2,440.6 ns 2,446.6 ns 410,207.9 0.08 No 0.3891 - -
SpanDissectionBenchmarkV3 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 2,523.3 ns 5.65 ns 5.28 ns 1.36 ns 2,513.3 ns 2,520.5 ns 2,521.9 ns 2,526.9 ns 2,532.6 ns 396,313.2 0.08 No 0.3967 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 2,541.6 ns 5.87 ns 5.49 ns 1.42 ns 2,531.0 ns 2,539.2 ns 2,541.3 ns 2,546.2 ns 2,549.4 ns 393,459.8 0.08 No 0.4044 - -
SpanDissectionBenchmarkV2 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 2,557.0 ns 8.40 ns 7.85 ns 2.03 ns 2,544.3 ns 2,552.8 ns 2,554.7 ns 2,561.5 ns 2,569.4 ns 391,086.9 0.08 No 0.4044 - -
LinqSplitBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 4,769.3 ns 24.95 ns 23.34 ns 6.03 ns 4,733.2 ns 4,751.8 ns 4,767.7 ns 4,783.6 ns 4,812.8 ns 209,674.8 0.15 No 0.8087 - -
RegexDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 30,051.1 ns 78.41 ns 61.22 ns 17.67 ns 29,978.3 ns 29,989.4 ns 30,044.7 ns 30,094.4 ns 30,159.1 ns 33,276.6 0.97 No 1.7700 - -
ChatCoreBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)=mod [299] 31,053.0 ns 71.74 ns 63.59 ns 17.00 ns 30,913.9 ns 31,018.5 ns 31,057.3 ns 31,083.8 ns 31,152.6 ns 32,203.0 1.00 Yes 1.4648 - -
SpanDissectionBenchmarkBroken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 2,395.0 ns 3.34 ns 2.79 ns 0.77 ns 2,389.4 ns 2,393.3 ns 2,394.2 ns 2,397.0 ns 2,399.1 ns 417,528.0 0.08 No 0.3891 - -
SpanDissectionBenchmarkV2Broken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 2,419.3 ns 15.44 ns 13.69 ns 3.66 ns 2,404.2 ns 2,408.1 ns 2,419.3 ns 2,425.0 ns 2,453.0 ns 413,345.6 0.08 No 0.3891 - -
SpanDissectionBenchmarkV2 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 2,509.8 ns 4.69 ns 4.16 ns 1.11 ns 2,499.3 ns 2,509.1 ns 2,510.5 ns 2,512.6 ns 2,514.9 ns 398,436.9 0.08 No 0.4044 - -
SpanDissectionBenchmarkV3 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 2,516.3 ns 6.21 ns 5.81 ns 1.50 ns 2,509.1 ns 2,512.3 ns 2,514.0 ns 2,520.6 ns 2,526.4 ns 397,407.8 0.08 No 0.3967 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 2,527.3 ns 5.10 ns 4.52 ns 1.21 ns 2,519.8 ns 2,523.7 ns 2,528.0 ns 2,531.0 ns 2,533.8 ns 395,683.1 0.08 No 0.4044 - -
LinqSplitBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 4,813.5 ns 57.33 ns 50.82 ns 13.58 ns 4,753.4 ns 4,766.1 ns 4,804.5 ns 4,851.7 ns 4,920.0 ns 207,749.7 0.16 No 0.8087 - -
RegexDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 30,315.3 ns 390.63 ns 346.29 ns 92.55 ns 30,011.9 ns 30,089.0 ns 30,147.0 ns 30,474.8 ns 31,111.6 ns 32,986.6 0.98 No 1.7700 - -
ChatCoreBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)=mod [299] 30,867.3 ns 104.54 ns 92.68 ns 24.77 ns 30,675.8 ns 30,807.0 ns 30,863.9 ns 30,927.5 ns 31,014.0 ns 32,396.7 1.00 Yes 1.4648 - -
SpanDissectionBenchmarkV3 Job-CIRMVA .NET 5.0 badg(...)ype= [294] 985.7 ns 7.71 ns 6.44 ns 1.79 ns 973.2 ns 982.3 ns 984.8 ns 989.2 ns 998.3 ns 1,014,507.1 0.16 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmarkBroken Job-CIRMVA .NET 5.0 badg(...)ype= [294] 986.9 ns 3.93 ns 3.28 ns 0.91 ns 980.2 ns 985.6 ns 987.1 ns 988.9 ns 992.1 ns 1,013,269.6 0.16 No 0.2460 0.0029 2,064 B
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [294] 1,045.2 ns 4.01 ns 3.35 ns 0.93 ns 1,039.0 ns 1,042.7 ns 1,045.2 ns 1,047.6 ns 1,050.5 ns 956,788.4 0.17 No 0.2604 0.0029 2,184 B
SpanDissectionBenchmarkV2Broken Job-CIRMVA .NET 5.0 badg(...)ype= [294] 1,048.5 ns 5.25 ns 4.66 ns 1.24 ns 1,041.3 ns 1,046.1 ns 1,048.7 ns 1,050.1 ns 1,056.9 ns 953,777.3 0.17 No 0.2460 0.0029 2,064 B
SpanDissectionBenchmarkV2 Job-CIRMVA .NET 5.0 badg(...)ype= [294] 1,092.7 ns 7.01 ns 6.56 ns 1.69 ns 1,079.9 ns 1,090.4 ns 1,093.4 ns 1,096.9 ns 1,103.6 ns 915,171.2 0.18 No 0.2594 0.0019 2,184 B
LinqSplitBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [294] 2,097.1 ns 5.04 ns 4.21 ns 1.17 ns 2,088.7 ns 2,094.8 ns 2,095.7 ns 2,100.8 ns 2,103.2 ns 476,839.0 0.35 No 0.4654 0.0076 3,896 B
ChatCoreBaselineBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [294] 6,078.5 ns 10.05 ns 8.39 ns 2.33 ns 6,062.5 ns 6,075.1 ns 6,078.4 ns 6,084.2 ns 6,091.3 ns 164,513.5 1.00 Yes 1.0147 0.0305 8,536 B
RegexDissectionBenchmark Job-CIRMVA .NET 5.0 badg(...)ype= [294] 7,577.8 ns 27.55 ns 23.01 ns 6.38 ns 7,544.2 ns 7,566.1 ns 7,570.1 ns 7,588.5 ns 7,629.5 ns 131,964.5 1.25 No 1.2131 0.0458 10,160 B
SpanDissectionBenchmarkV3 Job-NVAYXH .NET 6.0 badg(...)ype= [294] 906.0 ns 9.48 ns 8.86 ns 2.29 ns 894.9 ns 898.4 ns 905.4 ns 909.8 ns 922.7 ns 1,103,745.1 0.17 No 0.2470 0.0029 2,072 B
SpanDissectionBenchmarkBroken Job-NVAYXH .NET 6.0 badg(...)ype= [294] 970.3 ns 3.66 ns 3.25 ns 0.87 ns 963.1 ns 968.2 ns 970.2 ns 972.4 ns 974.8 ns 1,030,628.9 0.18 No 0.2460 0.0029 2,064 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [294] 989.3 ns 3.24 ns 3.03 ns 0.78 ns 984.3 ns 987.0 ns 989.5 ns 991.6 ns 993.6 ns 1,010,771.6 0.19 No 0.2604 0.0029 2,184 B
SpanDissectionBenchmarkV2Broken Job-NVAYXH .NET 6.0 badg(...)ype= [294] 1,027.4 ns 4.20 ns 3.50 ns 0.97 ns 1,023.3 ns 1,024.5 ns 1,026.8 ns 1,030.1 ns 1,035.8 ns 973,307.6 0.20 No 0.2460 0.0029 2,064 B
SpanDissectionBenchmarkV2 Job-NVAYXH .NET 6.0 badg(...)ype= [294] 1,027.9 ns 3.96 ns 3.51 ns 0.94 ns 1,023.0 ns 1,025.6 ns 1,026.9 ns 1,029.0 ns 1,035.1 ns 972,898.5 0.20 No 0.2604 0.0029 2,184 B
LinqSplitBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [294] 1,772.6 ns 6.84 ns 6.39 ns 1.65 ns 1,762.9 ns 1,767.6 ns 1,770.9 ns 1,777.1 ns 1,784.5 ns 564,156.3 0.34 No 0.4654 0.0076 3,896 B
ChatCoreBaselineBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [294] 5,265.1 ns 13.03 ns 12.19 ns 3.15 ns 5,242.6 ns 5,258.1 ns 5,262.4 ns 5,272.4 ns 5,288.9 ns 189,931.2 1.00 Yes 1.0147 0.0305 8,536 B
RegexDissectionBenchmark Job-NVAYXH .NET 6.0 badg(...)ype= [294] 6,988.3 ns 43.87 ns 36.63 ns 10.16 ns 6,942.4 ns 6,962.4 ns 6,988.0 ns 7,004.7 ns 7,057.5 ns 143,096.4 1.33 No 1.2131 0.0458 10,160 B
SpanDissectionBenchmarkBroken Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 1,155.5 ns 1.48 ns 1.23 ns 0.34 ns 1,152.7 ns 1,154.9 ns 1,155.6 ns 1,156.3 ns 1,157.5 ns 865,419.7 0.08 No 0.3433 0.0038 2,174 B
SpanDissectionBenchmarkV3 Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 1,161.1 ns 4.66 ns 4.36 ns 1.13 ns 1,155.1 ns 1,156.9 ns 1,160.3 ns 1,165.6 ns 1,166.7 ns 861,215.8 0.08 No 0.3471 0.0038 2,190 B
SpanDissectionBenchmarkV2Broken Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 1,163.3 ns 4.34 ns 4.06 ns 1.05 ns 1,156.2 ns 1,160.5 ns 1,161.7 ns 1,165.2 ns 1,171.5 ns 859,630.8 0.08 No 0.3433 0.0038 2,174 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 1,177.4 ns 3.95 ns 3.50 ns 0.94 ns 1,171.9 ns 1,175.7 ns 1,176.8 ns 1,179.6 ns 1,183.6 ns 849,345.1 0.08 No 0.3662 0.0038 2,319 B
SpanDissectionBenchmarkV2 Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 1,189.6 ns 5.54 ns 4.62 ns 1.28 ns 1,182.1 ns 1,185.7 ns 1,191.3 ns 1,193.3 ns 1,196.0 ns 840,641.1 0.08 No 0.3662 0.0038 2,319 B
LinqSplitBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 2,518.7 ns 13.72 ns 12.84 ns 3.31 ns 2,501.6 ns 2,509.0 ns 2,517.3 ns 2,526.8 ns 2,548.8 ns 397,031.3 0.17 No 1.1673 0.0191 7,374 B
RegexDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 10,425.3 ns 77.26 ns 68.49 ns 18.31 ns 10,336.8 ns 10,378.1 ns 10,409.8 ns 10,469.5 ns 10,577.0 ns 95,920.1 0.72 No 1.7853 0.0610 11,305 B
ChatCoreBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 badg(...)ype= [294] 14,495.3 ns 120.37 ns 106.70 ns 28.52 ns 14,399.4 ns 14,427.3 ns 14,437.8 ns 14,560.3 ns 14,769.5 ns 68,987.7 1.00 Yes 1.3733 0.0305 8,754 B
SpanDissectionBenchmarkV3 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 2,973.6 ns 8.01 ns 6.69 ns 1.86 ns 2,962.2 ns 2,970.2 ns 2,973.8 ns 2,978.2 ns 2,985.6 ns 336,291.2 0.11 No 0.3891 - -
SpanDissectionBenchmarkBroken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 3,056.8 ns 10.36 ns 9.18 ns 2.45 ns 3,040.9 ns 3,050.6 ns 3,059.7 ns 3,063.6 ns 3,067.9 ns 327,144.7 0.11 No 0.3891 - -
SpanDissectionBenchmarkV2Broken Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 3,086.9 ns 13.38 ns 11.86 ns 3.17 ns 3,071.4 ns 3,078.3 ns 3,086.7 ns 3,093.6 ns 3,109.5 ns 323,952.9 0.11 No 0.3891 - -
SpanDissectionBenchmarkV2 Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 3,284.9 ns 7.23 ns 6.41 ns 1.71 ns 3,275.5 ns 3,280.6 ns 3,284.4 ns 3,285.4 ns 3,299.7 ns 304,424.2 0.12 No 0.4005 - -
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 3,322.6 ns 11.51 ns 9.61 ns 2.67 ns 3,308.6 ns 3,315.6 ns 3,321.2 ns 3,328.3 ns 3,342.6 ns 300,964.6 0.12 No 0.4005 - -
LinqSplitBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 6,152.2 ns 30.16 ns 28.21 ns 7.28 ns 6,112.6 ns 6,130.6 ns 6,162.2 ns 6,170.5 ns 6,213.8 ns 162,542.7 0.22 No 1.4648 - -
ChatCoreBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 27,362.1 ns 53.81 ns 44.94 ns 12.46 ns 27,297.0 ns 27,322.5 ns 27,352.8 ns 27,393.8 ns 27,456.4 ns 36,546.9 1.00 Yes 1.4038 - -
RegexDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 badg(...)ype= [294] 30,819.8 ns 86.86 ns 81.25 ns 20.98 ns 30,703.8 ns 30,777.1 ns 30,800.8 ns 30,888.1 ns 30,948.3 ns 32,446.6 1.13 No 1.7700 - -
SpanDissectionBenchmarkV3 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 2,362.9 ns 13.11 ns 10.95 ns 3.04 ns 2,350.7 ns 2,356.2 ns 2,359.0 ns 2,368.3 ns 2,391.0 ns 423,206.3 0.07 No 0.3891 - -
SpanDissectionBenchmarkBroken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 2,396.5 ns 1.94 ns 1.72 ns 0.46 ns 2,393.9 ns 2,395.1 ns 2,396.4 ns 2,397.8 ns 2,399.1 ns 417,270.4 0.07 No 0.3891 - -
SpanDissectionBenchmarkV2Broken Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 2,412.2 ns 9.86 ns 9.22 ns 2.38 ns 2,399.6 ns 2,405.0 ns 2,410.7 ns 2,418.2 ns 2,431.8 ns 414,556.4 0.07 No 0.3891 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 2,529.4 ns 12.38 ns 9.67 ns 2.79 ns 2,516.1 ns 2,522.4 ns 2,529.7 ns 2,532.1 ns 2,549.7 ns 395,351.9 0.07 No 0.4005 - -
SpanDissectionBenchmarkV2 Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 2,537.6 ns 5.03 ns 4.46 ns 1.19 ns 2,528.3 ns 2,535.7 ns 2,537.1 ns 2,539.5 ns 2,545.1 ns 394,066.9 0.07 No 0.4005 - -
LinqSplitBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 4,755.1 ns 32.67 ns 28.96 ns 7.74 ns 4,724.6 ns 4,736.9 ns 4,741.9 ns 4,760.0 ns 4,812.1 ns 210,300.2 0.13 No 0.7935 - -
RegexDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 29,504.0 ns 81.25 ns 72.03 ns 19.25 ns 29,414.1 ns 29,439.6 ns 29,499.7 ns 29,550.0 ns 29,662.8 ns 33,893.7 0.82 No 1.7700 - -
ChatCoreBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 badg(...)ype= [294] 35,779.3 ns 72.31 ns 67.63 ns 17.46 ns 35,679.1 ns 35,718.6 ns 35,776.5 ns 35,840.6 ns 35,866.3 ns 27,949.1 1.00 Yes 1.4038 - -
SpanDissectionBenchmarkV3 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 2,349.1 ns 7.89 ns 6.59 ns 1.83 ns 2,340.4 ns 2,345.9 ns 2,348.2 ns 2,350.8 ns 2,362.2 ns 425,702.5 0.07 No 0.3891 - -
SpanDissectionBenchmarkBroken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 2,372.2 ns 6.56 ns 5.81 ns 1.55 ns 2,362.3 ns 2,368.7 ns 2,372.5 ns 2,376.6 ns 2,381.9 ns 421,557.0 0.07 No 0.3891 - -
SpanDissectionBenchmarkV2Broken Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 2,385.6 ns 4.39 ns 4.10 ns 1.06 ns 2,377.9 ns 2,382.7 ns 2,386.7 ns 2,388.6 ns 2,392.8 ns 419,178.6 0.07 No 0.3891 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 2,479.7 ns 4.33 ns 3.83 ns 1.02 ns 2,471.9 ns 2,478.8 ns 2,480.3 ns 2,481.5 ns 2,485.4 ns 403,282.2 0.07 No 0.4005 - -
SpanDissectionBenchmarkV2 Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 2,510.5 ns 9.50 ns 7.93 ns 2.20 ns 2,499.8 ns 2,505.5 ns 2,507.8 ns 2,517.5 ns 2,527.5 ns 398,321.7 0.07 No 0.4005 - -
LinqSplitBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 4,728.9 ns 21.07 ns 18.67 ns 4.99 ns 4,696.3 ns 4,715.6 ns 4,735.4 ns 4,739.2 ns 4,761.5 ns 211,465.5 0.13 No 0.7935 - -
RegexDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 29,523.1 ns 123.56 ns 109.53 ns 29.27 ns 29,405.1 ns 29,438.3 ns 29,475.3 ns 29,584.8 ns 29,722.7 ns 33,871.8 0.83 No 1.7700 - -
ChatCoreBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 badg(...)ype= [294] 35,616.8 ns 76.13 ns 67.48 ns 18.04 ns 35,539.0 ns 35,561.7 ns 35,604.0 ns 35,645.4 ns 35,764.0 ns 28,076.6 1.00 Yes 1.4038 - -

IRC (chat) message compound deconstruction

Clarification on this can be found here.

Click to expand!

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-CIRMVA : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT
  • Job-NVAYXH : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
  • Job-ZSFKTD : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
  • Job-UGEEKR : Mono 6.13.0 (Visual Studio), X86
  • Job-LJOXDK : Mono 6.13.0 (Visual Studio), X86
Method Job Runtime IrcMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [56] 64.97 ns 0.264 ns 0.247 ns 0.064 ns 64.56 ns 64.82 ns 64.93 ns 65.12 ns 65.49 ns 15,391,972.07 0.06 No 0.0210 - 176 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [56] 1,019.91 ns 1.799 ns 1.594 ns 0.426 ns 1,016.94 ns 1,019.42 ns 1,020.15 ns 1,020.76 ns 1,022.41 ns 980,481.21 1.00 Yes 0.1831 - 1,536 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [56] 55.82 ns 0.235 ns 0.196 ns 0.054 ns 55.50 ns 55.71 ns 55.82 ns 55.92 ns 56.14 ns 17,913,842.41 0.07 No 0.0210 - 176 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [56] 854.06 ns 2.107 ns 1.970 ns 0.509 ns 851.50 ns 852.56 ns 853.76 ns 854.78 ns 857.87 ns 1,170,881.09 1.00 Yes 0.1831 - 1,536 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [56] 98.93 ns 0.431 ns 0.382 ns 0.102 ns 98.26 ns 98.59 ns 98.97 ns 99.19 ns 99.60 ns 10,108,601.66 0.07 No 0.0318 - 201 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [56] 1,515.69 ns 4.237 ns 3.538 ns 0.981 ns 1,510.59 ns 1,513.83 ns 1,515.04 ns 1,518.27 ns 1,524.41 ns 659,766.01 1.00 Yes 0.2899 - 1,829 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 306.70 ns 1.308 ns 1.160 ns 0.310 ns 304.47 ns 306.15 ns 306.83 ns 307.08 ns 308.67 ns 3,260,531.22 0.11 No 0.0443 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [56] 2,802.31 ns 5.838 ns 5.176 ns 1.383 ns 2,794.71 ns 2,798.29 ns 2,801.51 ns 2,806.91 ns 2,810.19 ns 356,848.32 1.00 Yes 0.3052 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [56] 185.56 ns 0.342 ns 0.303 ns 0.081 ns 184.97 ns 185.36 ns 185.60 ns 185.80 ns 186.00 ns 5,389,202.67 0.04 No 0.0365 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [56] 4,446.71 ns 5.580 ns 4.660 ns 1.292 ns 4,437.84 ns 4,444.43 ns 4,448.49 ns 4,449.94 ns 4,452.00 ns 224,885.19 1.00 Yes 0.2594 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [56] 181.43 ns 0.315 ns 0.263 ns 0.073 ns 180.91 ns 181.32 ns 181.41 ns 181.49 ns 181.88 ns 5,511,615.73 0.04 No 0.0365 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [56] 4,438.50 ns 9.125 ns 8.089 ns 2.162 ns 4,428.18 ns 4,433.99 ns 4,436.15 ns 4,441.51 ns 4,457.66 ns 225,301.51 1.00 Yes 0.2594 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [58] 84.63 ns 0.350 ns 0.328 ns 0.085 ns 84.18 ns 84.34 ns 84.63 ns 84.86 ns 85.14 ns 11,816,653.87 0.08 No 0.0248 - 208 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...)leris [58] 1,081.13 ns 5.777 ns 5.403 ns 1.395 ns 1,072.35 ns 1,077.35 ns 1,080.09 ns 1,084.49 ns 1,090.81 ns 924,957.88 1.00 Yes 0.1698 - 1,424 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [58] 69.23 ns 0.622 ns 0.582 ns 0.150 ns 68.17 ns 68.86 ns 69.03 ns 69.73 ns 70.31 ns 14,445,170.98 0.07 No 0.0249 - 208 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...)leris [58] 939.36 ns 4.865 ns 4.063 ns 1.127 ns 934.79 ns 936.58 ns 937.75 ns 943.14 ns 946.80 ns 1,064,559.68 1.00 Yes 0.1698 - 1,424 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [58] 126.94 ns 0.398 ns 0.333 ns 0.092 ns 126.62 ns 126.70 ns 126.82 ns 126.95 ns 127.71 ns 7,878,027.64 0.08 No 0.0356 - 225 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...)leris [58] 1,683.90 ns 11.026 ns 9.774 ns 2.612 ns 1,674.67 ns 1,676.09 ns 1,681.02 ns 1,686.67 ns 1,706.42 ns 593,859.03 1.00 Yes 0.2556 - 1,621 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 417.00 ns 2.904 ns 2.717 ns 0.701 ns 413.33 ns 415.26 ns 416.52 ns 418.76 ns 423.46 ns 2,398,059.55 0.13 No 0.0539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...)leris [58] 3,164.86 ns 5.672 ns 5.306 ns 1.370 ns 3,154.75 ns 3,162.28 ns 3,163.17 ns 3,169.13 ns 3,174.34 ns 315,969.61 1.00 Yes 0.2670 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [58] 257.13 ns 1.567 ns 1.389 ns 0.371 ns 255.56 ns 256.03 ns 256.83 ns 257.95 ns 260.44 ns 3,889,063.77 0.05 No 0.0424 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...)leris [58] 5,214.78 ns 16.282 ns 15.230 ns 3.932 ns 5,186.18 ns 5,206.75 ns 5,216.71 ns 5,222.52 ns 5,240.29 ns 191,762.80 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [58] 255.52 ns 1.225 ns 1.023 ns 0.284 ns 254.27 ns 254.76 ns 255.47 ns 256.20 ns 257.92 ns 3,913,577.49 0.05 No 0.0424 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...)leris [58] 5,203.44 ns 10.253 ns 9.590 ns 2.476 ns 5,183.36 ns 5,196.91 ns 5,204.27 ns 5,209.81 ns 5,217.56 ns 192,180.38 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :real(...) list [66] 84.78 ns 0.403 ns 0.377 ns 0.097 ns 84.14 ns 84.57 ns 84.79 ns 84.98 ns 85.51 ns 11,795,183.75 0.08 No 0.0277 - 232 B
RegexBenchmark Job-CIRMVA .NET 5.0 :real(...) list [66] 1,067.79 ns 2.937 ns 2.604 ns 0.696 ns 1,064.32 ns 1,065.73 ns 1,067.87 ns 1,068.68 ns 1,073.74 ns 936,514.51 1.00 Yes 0.1717 - 1,448 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :real(...) list [66] 74.88 ns 0.515 ns 0.481 ns 0.124 ns 73.93 ns 74.65 ns 74.95 ns 75.13 ns 75.66 ns 13,355,290.59 0.08 No 0.0277 - 232 B
RegexBenchmark Job-NVAYXH .NET 6.0 :real(...) list [66] 914.93 ns 2.819 ns 2.499 ns 0.668 ns 910.96 ns 913.37 ns 914.46 ns 915.83 ns 919.89 ns 1,092,977.84 1.00 Yes 0.1726 - 1,448 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...) list [66] 123.39 ns 0.422 ns 0.374 ns 0.100 ns 122.98 ns 123.09 ns 123.24 ns 123.62 ns 124.05 ns 8,104,336.25 0.07 No 0.0368 - 233 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :real(...) list [66] 1,726.67 ns 7.245 ns 6.777 ns 1.750 ns 1,716.57 ns 1,721.87 ns 1,725.10 ns 1,730.61 ns 1,742.93 ns 579,149.54 1.00 Yes 0.2575 - 1,629 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 413.97 ns 1.950 ns 1.824 ns 0.471 ns 410.27 ns 413.02 ns 413.65 ns 415.46 ns 416.57 ns 2,415,610.59 0.13 No 0.0591 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :real(...) list [66] 3,141.06 ns 5.896 ns 5.515 ns 1.424 ns 3,132.91 ns 3,135.44 ns 3,142.11 ns 3,145.18 ns 3,149.20 ns 318,363.98 1.00 Yes 0.2747 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...) list [66] 258.89 ns 0.552 ns 0.489 ns 0.131 ns 258.21 ns 258.49 ns 258.90 ns 259.25 ns 259.64 ns 3,862,683.72 0.05 No 0.0477 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :real(...) list [66] 5,197.74 ns 7.029 ns 5.869 ns 1.628 ns 5,188.16 ns 5,194.89 ns 5,196.70 ns 5,202.58 ns 5,208.91 ns 192,391.24 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...) list [66] 256.07 ns 0.576 ns 0.450 ns 0.130 ns 255.37 ns 255.84 ns 256.06 ns 256.30 ns 256.86 ns 3,905,114.46 0.05 No 0.0477 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :real(...) list [66] 5,213.98 ns 6.736 ns 6.301 ns 1.627 ns 5,202.89 ns 5,210.72 ns 5,212.16 ns 5,219.29 ns 5,222.80 ns 191,792.12 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)is :> [30] 73.62 ns 0.333 ns 0.295 ns 0.079 ns 72.96 ns 73.48 ns 73.64 ns 73.79 ns 74.15 ns 13,582,767.09 0.07 No 0.0172 - 144 B
RegexBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)is :> [30] 1,025.68 ns 3.964 ns 3.514 ns 0.939 ns 1,020.87 ns 1,023.18 ns 1,025.46 ns 1,027.37 ns 1,033.06 ns 974,962.38 1.00 Yes 0.1621 - 1,360 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)is :> [30] 65.53 ns 0.268 ns 0.238 ns 0.063 ns 65.17 ns 65.36 ns 65.50 ns 65.69 ns 66.07 ns 15,259,632.27 0.08 No 0.0172 - 144 B
RegexBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)is :> [30] 871.52 ns 5.167 ns 4.314 ns 1.197 ns 865.95 ns 868.52 ns 870.73 ns 874.49 ns 881.02 ns 1,147,416.05 1.00 Yes 0.1621 - 1,360 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)is :> [30] 108.69 ns 0.405 ns 0.359 ns 0.096 ns 108.12 ns 108.43 ns 108.65 ns 108.89 ns 109.53 ns 9,200,546.14 0.09 No 0.0267 - 168 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)is :> [30] 1,265.79 ns 9.261 ns 8.210 ns 2.194 ns 1,257.73 ns 1,259.65 ns 1,261.95 ns 1,271.12 ns 1,281.63 ns 790,021.50 1.00 Yes 0.2422 - 1,533 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 362.39 ns 1.555 ns 1.455 ns 0.376 ns 359.79 ns 361.68 ns 362.49 ns 363.63 ns 364.64 ns 2,759,481.38 0.15 No 0.0343 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)is :> [30] 2,465.25 ns 4.485 ns 3.976 ns 1.063 ns 2,457.58 ns 2,463.02 ns 2,466.19 ns 2,467.60 ns 2,471.10 ns 405,638.92 1.00 Yes 0.2441 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)is :> [30] 216.29 ns 0.277 ns 0.246 ns 0.066 ns 215.84 ns 216.14 ns 216.27 ns 216.36 ns 216.74 ns 4,623,453.74 0.05 No 0.0267 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)is :> [30] 4,488.10 ns 9.578 ns 8.491 ns 2.269 ns 4,476.22 ns 4,484.08 ns 4,485.54 ns 4,490.71 ns 4,509.15 ns 222,811.31 1.00 Yes 0.2213 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)is :> [30] 213.85 ns 0.339 ns 0.301 ns 0.080 ns 213.31 ns 213.66 ns 213.84 ns 214.08 ns 214.26 ns 4,676,276.87 0.05 No 0.0267 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)is :> [30] 4,511.18 ns 15.465 ns 13.710 ns 3.664 ns 4,492.07 ns 4,501.18 ns 4,507.76 ns 4,522.81 ns 4,536.50 ns 221,671.72 1.00 Yes 0.2213 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)rship [80] 80.74 ns 0.323 ns 0.302 ns 0.078 ns 80.19 ns 80.51 ns 80.78 ns 80.94 ns 81.31 ns 12,384,913.70 0.08 No 0.0296 - 248 B
RegexBenchmark Job-CIRMVA .NET 5.0 :tmi.(...)rship [80] 1,058.52 ns 7.628 ns 7.136 ns 1.842 ns 1,049.42 ns 1,052.12 ns 1,059.11 ns 1,062.86 ns 1,072.78 ns 944,717.87 1.00 Yes 0.1736 - 1,464 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)rship [80] 73.82 ns 0.658 ns 0.616 ns 0.159 ns 72.95 ns 73.37 ns 73.60 ns 74.31 ns 75.06 ns 13,547,338.20 0.08 No 0.0296 - 248 B
RegexBenchmark Job-NVAYXH .NET 6.0 :tmi.(...)rship [80] 898.48 ns 4.625 ns 3.611 ns 1.042 ns 894.37 ns 895.66 ns 897.19 ns 902.60 ns 903.64 ns 1,112,994.45 1.00 Yes 0.1745 - 1,464 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)rship [80] 112.93 ns 0.855 ns 0.758 ns 0.202 ns 112.04 ns 112.46 ns 112.71 ns 113.15 ns 114.72 ns 8,854,980.20 0.06 No 0.0420 - 265 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 :tmi.(...)rship [80] 1,829.58 ns 5.093 ns 4.515 ns 1.207 ns 1,823.70 ns 1,826.33 ns 1,828.37 ns 1,832.92 ns 1,837.85 ns 546,574.64 1.00 Yes 0.2575 - 1,629 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 389.95 ns 1.467 ns 1.373 ns 0.354 ns 387.94 ns 388.73 ns 389.75 ns 391.12 ns 392.52 ns 2,564,406.51 0.12 No 0.0558 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 :tmi.(...)rship [80] 3,287.59 ns 5.978 ns 5.592 ns 1.444 ns 3,278.60 ns 3,283.00 ns 3,288.18 ns 3,291.96 ns 3,297.29 ns 304,174.07 1.00 Yes 0.2708 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)rship [80] 231.18 ns 0.892 ns 0.697 ns 0.201 ns 230.26 ns 230.75 ns 231.10 ns 231.56 ns 232.80 ns 4,325,590.28 0.04 No 0.0520 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 :tmi.(...)rship [80] 5,355.81 ns 5.206 ns 4.615 ns 1.233 ns 5,348.72 ns 5,352.09 ns 5,355.26 ns 5,358.53 ns 5,364.01 ns 186,713.00 1.00 Yes 0.2518 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)rship [80] 218.48 ns 0.691 ns 0.612 ns 0.164 ns 217.80 ns 218.00 ns 218.17 ns 219.04 ns 219.67 ns 4,577,171.69 0.04 No 0.0520 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 :tmi.(...)rship [80] 5,359.47 ns 8.797 ns 8.229 ns 2.125 ns 5,348.58 ns 5,353.12 ns 5,357.26 ns 5,366.84 ns 5,375.39 ns 186,585.51 1.00 Yes 0.2518 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)tle. [539] 876.40 ns 5.145 ns 4.296 ns 1.192 ns 871.48 ns 874.17 ns 875.16 ns 876.87 ns 887.20 ns 1,141,027.91 0.01 No 0.2918 0.0010 2,448 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)tle. [539] 63,811.77 ns 286.432 ns 267.928 ns 69.179 ns 63,467.49 ns 63,616.39 ns 63,766.04 ns 63,965.69 ns 64,478.33 ns 15,671.09 1.00 Yes 0.8545 - 8,136 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)tle. [539] 824.20 ns 3.534 ns 2.951 ns 0.818 ns 818.75 ns 823.02 ns 824.22 ns 826.18 ns 829.53 ns 1,213,301.56 0.01 No 0.2918 0.0010 2,448 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)tle. [539] 62,399.23 ns 269.020 ns 251.642 ns 64.974 ns 62,072.45 ns 62,242.30 ns 62,314.87 ns 62,550.81 ns 63,002.38 ns 16,025.84 1.00 Yes 0.8545 - 8,136 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)tle. [539] 1,061.28 ns 3.649 ns 3.414 ns 0.881 ns 1,054.93 ns 1,058.46 ns 1,061.53 ns 1,064.63 ns 1,065.95 ns 942,256.73 0.001 No 0.4044 0.0019 2,552 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)tle. [539] 1,434,199.09 ns 5,326.803 ns 4,982.695 ns 1,286.526 ns 1,424,443.55 ns 1,431,888.96 ns 1,433,875.39 ns 1,436,934.08 ns 1,443,313.28 ns 697.25 1.000 Yes - - 8,624 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 2,721.36 ns 5.919 ns 4.943 ns 1.371 ns 2,713.54 ns 2,719.72 ns 2,720.25 ns 2,725.01 ns 2,729.35 ns 367,462.81 0.001 No 0.4921 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)tle. [539] 4,536,654.88 ns 8,660.274 ns 6,761.372 ns 1,951.840 ns 4,528,067.97 ns 4,530,916.60 ns 4,536,573.44 ns 4,542,208.59 ns 4,549,146.09 ns 220.43 1.000 Yes - - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)tle. [539] 1,989.12 ns 5.508 ns 5.152 ns 1.330 ns 1,982.32 ns 1,984.51 ns 1,987.57 ns 1,992.97 ns 1,997.40 ns 502,733.85 0.000 No 0.4883 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)tle. [539] 4,872,094.74 ns 23,893.125 ns 22,349.644 ns 5,770.653 ns 4,844,147.66 ns 4,851,153.13 ns 4,869,540.63 ns 4,885,319.53 ns 4,924,646.88 ns 205.25 1.000 Yes - - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)tle. [539] 2,014.94 ns 14.434 ns 12.795 ns 3.420 ns 2,000.50 ns 2,007.11 ns 2,010.10 ns 2,018.48 ns 2,042.13 ns 496,291.82 0.000 No 0.4883 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)tle. [539] 4,835,789.84 ns 17,184.670 ns 16,074.551 ns 4,150.431 ns 4,813,796.88 ns 4,824,535.16 ns 4,829,438.28 ns 4,849,927.34 ns 4,862,082.81 ns 206.79 1.000 Yes - - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)sted [432] 1,118.73 ns 3.186 ns 2.980 ns 0.769 ns 1,114.61 ns 1,116.03 ns 1,119.71 ns 1,120.21 ns 1,124.88 ns 893,869.02 0.07 No 0.3033 - 2,544 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)sted [432] 16,671.51 ns 95.637 ns 84.780 ns 22.658 ns 16,576.74 ns 16,617.86 ns 16,643.68 ns 16,714.02 ns 16,834.23 ns 59,982.58 1.00 Yes 1.2817 0.0305 10,904 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)sted [432] 1,105.97 ns 4.580 ns 3.824 ns 1.061 ns 1,100.72 ns 1,103.81 ns 1,104.31 ns 1,108.60 ns 1,112.51 ns 904,185.22 0.07 No 0.3033 0.0010 2,544 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)sted [432] 15,193.22 ns 59.337 ns 55.504 ns 14.331 ns 15,098.43 ns 15,148.20 ns 15,180.22 ns 15,243.51 ns 15,275.37 ns 65,818.85 1.00 Yes 1.2970 0.0305 10,904 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)sted [432] 1,404.89 ns 11.395 ns 9.515 ns 2.639 ns 1,393.98 ns 1,400.40 ns 1,402.88 ns 1,408.68 ns 1,428.69 ns 711,799.13 0.007 No 0.4234 0.0019 2,680 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)sted [432] 203,850.40 ns 542.641 ns 453.130 ns 125.676 ns 203,048.66 ns 203,613.09 ns 203,851.15 ns 204,041.92 ns 204,773.68 ns 4,905.56 1.000 Yes 1.7090 - 11,426 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 3,843.61 ns 75.780 ns 74.426 ns 18.607 ns 3,743.91 ns 3,749.57 ns 3,896.47 ns 3,903.13 ns 3,917.95 ns 260,172.22 0.006 No 0.4997 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)sted [432] 618,089.78 ns 1,879.132 ns 1,757.741 ns 453.847 ns 616,057.91 ns 616,779.54 ns 617,671.58 ns 618,884.62 ns 621,829.20 ns 1,617.89 1.000 Yes 0.9766 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)sted [432] 2,865.58 ns 4.843 ns 4.044 ns 1.122 ns 2,859.34 ns 2,863.66 ns 2,865.38 ns 2,868.17 ns 2,874.68 ns 348,969.05 0.004 No 0.4883 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)sted [432] 672,658.14 ns 1,813.939 ns 1,514.721 ns 420.108 ns 670,521.39 ns 671,382.52 ns 672,275.68 ns 673,849.41 ns 675,058.30 ns 1,486.64 1.000 Yes 0.9766 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)sted [432] 2,892.51 ns 11.672 ns 9.746 ns 2.703 ns 2,876.77 ns 2,886.83 ns 2,894.52 ns 2,901.21 ns 2,905.08 ns 345,720.42 0.004 No 0.4883 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)sted [432] 670,875.80 ns 1,177.559 ns 1,043.876 ns 278.988 ns 669,534.67 ns 670,293.58 ns 670,871.04 ns 671,050.39 ns 672,798.73 ns 1,490.59 1.000 Yes 0.9766 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)Heya [361] 1,070.27 ns 6.879 ns 5.745 ns 1.593 ns 1,060.67 ns 1,064.46 ns 1,071.72 ns 1,073.66 ns 1,078.38 ns 934,345.37 0.11 No 0.2775 0.0010 2,328 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)Heya [361] 9,769.57 ns 21.872 ns 20.459 ns 5.283 ns 9,738.21 ns 9,755.85 ns 9,775.43 ns 9,779.72 ns 9,809.29 ns 102,358.61 1.00 Yes 1.2054 0.0305 10,184 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)Heya [361] 1,007.10 ns 5.646 ns 5.281 ns 1.364 ns 998.23 ns 1,002.70 ns 1,008.93 ns 1,010.46 ns 1,016.16 ns 992,952.58 0.11 No 0.2775 0.0010 2,328 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)Heya [361] 8,827.90 ns 58.696 ns 54.904 ns 14.176 ns 8,770.56 ns 8,784.91 ns 8,803.48 ns 8,867.64 ns 8,939.38 ns 113,277.19 1.00 Yes 1.2054 0.0305 10,184 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)Heya [361] 1,343.99 ns 5.757 ns 5.385 ns 1.390 ns 1,334.81 ns 1,340.02 ns 1,344.14 ns 1,346.56 ns 1,355.13 ns 744,051.94 0.02 No 0.3929 0.0019 2,479 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)Heya [361] 58,627.90 ns 282.464 ns 250.397 ns 66.921 ns 58,269.42 ns 58,465.46 ns 58,549.06 ns 58,824.63 ns 59,146.79 ns 17,056.73 1.00 Yes 1.6479 - 10,704 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 3,567.49 ns 7.626 ns 6.761 ns 1.807 ns 3,558.70 ns 3,562.17 ns 3,565.88 ns 3,571.76 ns 3,580.18 ns 280,309.23 0.02 No 0.4539 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)Heya [361] 159,720.72 ns 771.177 ns 683.628 ns 182.707 ns 158,989.84 ns 159,167.83 ns 159,474.34 ns 160,238.27 ns 161,213.92 ns 6,260.93 1.00 Yes 1.7090 - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)Heya [361] 2,742.48 ns 8.245 ns 7.309 ns 1.953 ns 2,732.56 ns 2,737.70 ns 2,743.03 ns 2,747.30 ns 2,759.32 ns 364,633.37 0.02 No 0.4311 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)Heya [361] 177,887.99 ns 341.840 ns 319.758 ns 82.561 ns 177,302.44 ns 177,689.51 ns 177,865.87 ns 178,185.38 ns 178,309.23 ns 5,621.52 1.00 Yes 1.7090 - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)Heya [361] 2,700.22 ns 6.117 ns 5.108 ns 1.417 ns 2,692.57 ns 2,697.39 ns 2,699.45 ns 2,703.63 ns 2,712.12 ns 370,340.31 0.02 No 0.4311 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)Heya [361] 178,669.99 ns 411.497 ns 384.914 ns 99.384 ns 178,166.82 ns 178,389.16 ns 178,650.66 ns 178,882.71 ns 179,533.33 ns 5,596.91 1.00 Yes 1.7090 - -
SpanDissectionBenchmark Job-CIRMVA .NET 5.0 @bad(...)op p [857] 1,172.05 ns 11.233 ns 9.958 ns 2.661 ns 1,157.10 ns 1,165.40 ns 1,170.65 ns 1,178.44 ns 1,193.77 ns 853,203.67 0.007 No 0.3967 0.0019 3,320 B
RegexBenchmark Job-CIRMVA .NET 5.0 @bad(...)op p [857] 163,203.03 ns 894.604 ns 836.813 ns 216.064 ns 162,261.04 ns 162,542.03 ns 162,776.66 ns 163,828.61 ns 164,756.45 ns 6,127.34 1.000 Yes 1.2207 - 11,176 B
SpanDissectionBenchmark Job-NVAYXH .NET 6.0 @bad(...)op p [857] 1,155.23 ns 4.543 ns 3.547 ns 1.024 ns 1,149.38 ns 1,152.73 ns 1,156.59 ns 1,158.20 ns 1,158.72 ns 865,627.36 0.007 No 0.3967 0.0019 3,320 B
RegexBenchmark Job-NVAYXH .NET 6.0 @bad(...)op p [857] 157,980.57 ns 223.938 ns 186.999 ns 51.864 ns 157,703.37 ns 157,876.95 ns 157,948.71 ns 158,100.95 ns 158,356.52 ns 6,329.89 1.000 Yes 1.2207 - 11,176 B
SpanDissectionBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)op p [857] 1,441.79 ns 8.685 ns 7.253 ns 2.012 ns 1,430.02 ns 1,437.47 ns 1,441.58 ns 1,447.92 ns 1,452.73 ns 693,583.37 0.000 No 0.5512 0.0019 3,474 B
RegexBenchmark Job-ZSFKTD .NET Framework 4.7.2 @bad(...)op p [857] 4,219,007.45 ns 12,222.237 ns 11,432.688 ns 2,951.907 ns 4,200,345.31 ns 4,209,171.09 ns 4,219,639.06 ns 4,227,119.92 ns 4,241,373.44 ns 237.02 1.000 Yes - - 11,712 B
SpanDissectionBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 3,879.16 ns 19.729 ns 16.475 ns 4.569 ns 3,859.72 ns 3,869.30 ns 3,873.04 ns 3,883.90 ns 3,913.57 ns 257,787.97 0.000 No 0.7324 - -
RegexBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 @bad(...)op p [857] 13,337,526.15 ns 21,661.611 ns 20,262.284 ns 5,231.699 ns 13,304,620.31 ns 13,322,991.41 ns 13,329,735.94 ns 13,355,866.41 ns 13,376,846.88 ns 74.98 1.000 Yes - - -
SpanDissectionBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)op p [857] 2,796.52 ns 5.127 ns 4.545 ns 1.215 ns 2,790.10 ns 2,795.00 ns 2,795.77 ns 2,799.22 ns 2,805.79 ns 357,587.03 0.000 No 0.6790 - -
RegexBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 @bad(...)op p [857] 14,244,373.75 ns 33,296.691 ns 31,145.745 ns 8,041.797 ns 14,189,693.75 ns 14,229,092.97 ns 14,245,940.63 ns 14,263,256.25 ns 14,309,248.44 ns 70.20 1.000 Yes - - -
SpanDissectionBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)op p [857] 2,806.84 ns 9.504 ns 8.891 ns 2.296 ns 2,795.76 ns 2,800.26 ns 2,804.89 ns 2,812.07 ns 2,825.11 ns 356,272.26 0.000 No 0.6790 - -
RegexBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 @bad(...)op p [857] 14,229,199.55 ns 54,962.568 ns 48,722.885 ns 13,021.739 ns 14,163,942.19 ns 14,198,128.52 ns 14,223,374.22 ns 14,238,542.19 ns 14,331,076.56 ns 70.28 1.000 Yes - - -

Multi IRC (chat) message deconstruction

Clarification on this can be found here.

Click to expand!

BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19044.2728/21H2/November2021Update)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4614.0), X64 RyuJIT VectorSize=256
  • Job-CIRMVA : .NET 5.0.17 (5.0.1722.21314), X64 RyuJIT AVX2
  • Job-NVAYXH : .NET 6.0.15 (6.0.1523.11507), X64 RyuJIT AVX2
  • Job-ZSFKTD : .NET Framework 4.8 (4.8.4614.0), X64 RyuJIT VectorSize=256
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86 VectorSize=128
  • Job-UGEEKR : Mono 6.13.0 (Visual Studio), X86 VectorSize=128
  • Job-LJOXDK : Mono 6.13.0 (Visual Studio), X86 VectorSize=128
Method Runtime RawIrcMultiMessage Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio RatioSD Baseline Gen0 Gen1 Allocated Alloc Ratio
InlineSpanBasedSplitBenchmarkV2 .NET 5.0 :tmi(...)TE\r\n [528] 1,120.9 ns 5.01 ns 4.44 ns 1.19 ns 1,112.9 ns 1,118.7 ns 1,121.0 ns 1,123.9 ns 1,130.3 ns 892,119.5 0.67 0.01 No 0.2728 - 2288 B 0.61
InlineSpanBasedSplitBenchmarkV1 .NET 5.0 :tmi(...)TE\r\n [528] 1,494.3 ns 7.82 ns 7.32 ns 1.89 ns 1,484.5 ns 1,489.1 ns 1,492.9 ns 1,498.1 ns 1,508.0 ns 669,228.1 0.89 0.01 No 0.2728 - 2288 B 0.61
IntermediateStringSplitBenchmark .NET 5.0 :tmi(...)TE\r\n [528] 1,679.7 ns 16.54 ns 15.47 ns 3.99 ns 1,653.4 ns 1,667.0 ns 1,679.7 ns 1,688.8 ns 1,712.9 ns 595,345.6 1.00 0.00 Yes 0.4501 0.0019 3768 B 1.00
InlineSpanBasedSplitBenchmarkV2 .NET 6.0 :tmi(...)TE\r\n [528] 999.6 ns 7.79 ns 7.29 ns 1.88 ns 989.3 ns 994.2 ns 998.3 ns 1,003.5 ns 1,015.2 ns 1,000,445.0 0.77 0.01 No 0.2728 - 2288 B 0.61
InlineSpanBasedSplitBenchmarkV1 .NET 6.0 :tmi(...)TE\r\n [528] 1,241.7 ns 5.01 ns 4.44 ns 1.19 ns 1,234.5 ns 1,237.9 ns 1,242.0 ns 1,244.7 ns 1,249.1 ns 805,370.5 0.96 0.01 No 0.2728 - 2288 B 0.61
IntermediateStringSplitBenchmark .NET 6.0 :tmi(...)TE\r\n [528] 1,300.0 ns 9.29 ns 8.69 ns 2.24 ns 1,292.7 ns 1,294.3 ns 1,294.8 ns 1,303.1 ns 1,316.3 ns 769,255.9 1.00 0.00 Yes 0.4501 0.0019 3768 B 1.00
InlineSpanBasedSplitBenchmarkV2 .NET Framework 4.7.2 :tmi(...)TE\r\n [528] 1,763.9 ns 7.73 ns 7.23 ns 1.87 ns 1,749.8 ns 1,759.0 ns 1,762.2 ns 1,769.6 ns 1,777.5 ns 566,932.8 0.73 0.01 No 0.3967 - 2503 B 0.41
InlineSpanBasedSplitBenchmarkV1 .NET Framework 4.7.2 :tmi(...)TE\r\n [528] 2,023.2 ns 36.57 ns 32.41 ns 8.66 ns 1,969.0 ns 2,007.8 ns 2,031.2 ns 2,047.8 ns 2,071.0 ns 494,260.2 0.84 0.02 No 0.3967 - 2503 B 0.41
IntermediateStringSplitBenchmark .NET Framework 4.7.2 :tmi(...)TE\r\n [528] 2,421.7 ns 15.21 ns 13.48 ns 3.60 ns 2,401.7 ns 2,409.8 ns 2,420.6 ns 2,432.8 ns 2,443.4 ns 412,940.6 1.00 0.00 Yes 0.9766 0.0076 6146 B 1.00
InlineSpanBasedSplitBenchmarkV2 Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 4,902.7 ns 49.60 ns 46.40 ns 11.98 ns 4,848.7 ns 4,863.6 ns 4,889.3 ns 4,948.6 ns 4,986.8 ns 203,970.7 0.75 0.01 No 0.4883 - - NA
InlineSpanBasedSplitBenchmarkV1 Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 5,247.7 ns 22.22 ns 19.69 ns 5.26 ns 5,220.6 ns 5,237.6 ns 5,242.9 ns 5,257.8 ns 5,291.4 ns 190,560.0 0.81 0.00 No 0.4883 - - NA
IntermediateStringSplitBenchmark Mono Unity 2019.4.28f1 :tmi(...)TE\r\n [528] 6,506.0 ns 43.93 ns 41.09 ns 10.61 ns 6,448.5 ns 6,468.9 ns 6,506.4 ns 6,538.9 ns 6,574.6 ns 153,705.0 1.00 0.00 Yes 1.3199 - - NA
InlineSpanBasedSplitBenchmarkV2 Mono Unity 2021.2.0b4 :tmi(...)TE\r\n [528] 3,558.4 ns 11.81 ns 11.05 ns 2.85 ns 3,543.8 ns 3,551.5 ns 3,555.6 ns 3,564.9 ns 3,583.1 ns 281,024.9 0.81 0.01 No 0.4349 - - NA
InlineSpanBasedSplitBenchmarkV1 Mono Unity 2021.2.0b4 :tmi(...)TE\r\n [528] 4,050.1 ns 20.90 ns 17.45 ns 4.84 ns 4,011.0 ns 4,041.2 ns 4,052.1 ns 4,057.6 ns 4,077.5 ns 246,905.8 0.92 0.01 No 0.4349 - - NA
IntermediateStringSplitBenchmark Mono Unity 2021.2.0b4 :tmi(...)TE\r\n [528] 4,384.7 ns 32.67 ns 30.56 ns 7.89 ns 4,342.2 ns 4,364.6 ns 4,376.4 ns 4,402.1 ns 4,447.8 ns 228,067.2 1.00 0.00 Yes 0.7553 - - NA
InlineSpanBasedSplitBenchmarkV2 Mono Unity 2022.1.0a12 :tmi(...)TE\r\n [528] 3,589.7 ns 14.01 ns 12.42 ns 3.32 ns 3,575.2 ns 3,578.8 ns 3,590.4 ns 3,594.4 ns 3,618.7 ns 278,573.1 0.82 0.00 No 0.4349 - - NA
InlineSpanBasedSplitBenchmarkV1 Mono Unity 2022.1.0a12 :tmi(...)TE\r\n [528] 3,963.7 ns 23.14 ns 21.65 ns 5.59 ns 3,937.3 ns 3,949.5 ns 3,954.9 ns 3,981.8 ns 4,006.9 ns 252,289.2 0.90 0.01 No 0.4349 - - NA
IntermediateStringSplitBenchmark Mono Unity 2022.1.0a12 :tmi(...)TE\r\n [528] 4,400.6 ns 19.63 ns 18.36 ns 4.74 ns 4,370.9 ns 4,392.2 ns 4,398.1 ns 4,410.8 ns 4,436.2 ns 227,242.2 1.00 0.00 Yes 0.7553 - - NA

Emoji parsing

Clarification on this can be found here.

Click to expand!

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1645 (21H2)
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores

  • [Host] : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-CIRMVA : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT
  • Job-NVAYXH : .NET 6.0.4 (6.0.422.16404), X64 RyuJIT
  • Job-ZSFKTD : .NET Framework 4.8 (4.8.4470.0), X64 RyuJIT
  • Job-XTWDPN : Mono 5.11.0 (Visual Studio), X86
  • Job-UGEEKR : Mono 6.13.0 (Visual Studio), X86
  • Job-LJOXDK : Mono 6.13.0 (Visual Studio), X86
Method Job Runtime Message Mean Error StdDev StdErr Min Q1 Median Q3 Max Op/s Ratio Baseline Gen 0 Gen 1 Allocated
CatCoreTwemojiReimplementationBenchmark Job-CIRMVA .NET 5.0 I 🧑 Twemoji! πŸ₯³ 294.0 ns 2.12 ns 1.98 ns 0.51 ns 291.1 ns 292.1 ns 294.4 ns 295.2 ns 297.3 ns 3,401,719.5 0.13 No 0.0658 - 552 B
FrwTwemojiAdjustedBenchmark Job-CIRMVA .NET 5.0 I 🧑 Twemoji! πŸ₯³ 1,981.4 ns 19.10 ns 17.87 ns 4.61 ns 1,957.2 ns 1,971.6 ns 1,979.3 ns 1,989.5 ns 2,015.8 ns 504,706.1 0.89 No 0.2193 0.0019 1,848 B
FrwTwemojiBaselineBenchmark Job-CIRMVA .NET 5.0 I 🧑 Twemoji! πŸ₯³ 2,220.5 ns 13.70 ns 12.82 ns 3.31 ns 2,200.2 ns 2,210.2 ns 2,216.5 ns 2,232.3 ns 2,246.0 ns 450,348.2 1.00 Yes 0.2327 - 1,960 B
CatCoreTwemojiReimplementationBenchmark Job-NVAYXH .NET 6.0 I 🧑 Twemoji! πŸ₯³ 297.8 ns 1.62 ns 1.44 ns 0.38 ns 294.6 ns 297.1 ns 297.8 ns 298.3 ns 300.2 ns 3,357,554.5 0.15 No 0.0658 - 552 B
FrwTwemojiAdjustedBenchmark Job-NVAYXH .NET 6.0 I 🧑 Twemoji! πŸ₯³ 1,851.6 ns 6.29 ns 5.88 ns 1.52 ns 1,842.4 ns 1,847.1 ns 1,849.5 ns 1,856.3 ns 1,862.3 ns 540,085.2 0.91 No 0.2193 - 1,848 B
FrwTwemojiBaselineBenchmark Job-NVAYXH .NET 6.0 I 🧑 Twemoji! πŸ₯³ 2,045.6 ns 11.16 ns 9.89 ns 2.64 ns 2,022.8 ns 2,041.9 ns 2,044.8 ns 2,049.8 ns 2,063.3 ns 488,856.3 1.00 Yes 0.2327 0.0019 1,960 B
CatCoreTwemojiReimplementationBenchmark Job-ZSFKTD .NET Framework 4.7.2 I 🧑 Twemoji! πŸ₯³ 323.6 ns 0.81 ns 0.72 ns 0.19 ns 322.3 ns 323.3 ns 323.6 ns 324.1 ns 324.7 ns 3,090,164.0 0.07 No 0.0887 - 562 B
FrwTwemojiAdjustedBenchmark Job-ZSFKTD .NET Framework 4.7.2 I 🧑 Twemoji! πŸ₯³ 3,874.8 ns 20.45 ns 17.07 ns 4.74 ns 3,851.9 ns 3,859.4 ns 3,876.3 ns 3,887.6 ns 3,900.9 ns 258,081.1 0.89 No 0.3052 - 1,934 B
FrwTwemojiBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 I 🧑 Twemoji! πŸ₯³ 4,360.7 ns 26.21 ns 23.23 ns 6.21 ns 4,337.3 ns 4,341.6 ns 4,355.4 ns 4,373.8 ns 4,413.7 ns 229,319.4 1.00 Yes 0.3738 - 2,415 B
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 624.2 ns 3.95 ns 3.30 ns 0.91 ns 619.3 ns 622.5 ns 623.9 ns 625.8 ns 631.2 ns 1,601,943.0 0.06 No 0.1049 - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 9,924.5 ns 16.82 ns 14.04 ns 3.90 ns 9,903.4 ns 9,916.5 ns 9,921.0 ns 9,928.5 ns 9,951.5 ns 100,761.0 0.93 No 0.3357 - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I 🧑 Twemoji! πŸ₯³ 10,663.5 ns 57.06 ns 53.37 ns 13.78 ns 10,602.8 ns 10,622.4 ns 10,629.1 ns 10,701.1 ns 10,766.3 ns 93,777.9 1.00 Yes 0.4120 - -
CatCoreTwemojiReimplementationBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I 🧑 Twemoji! πŸ₯³ 522.9 ns 3.39 ns 3.01 ns 0.80 ns 517.8 ns 521.3 ns 522.5 ns 524.2 ns 528.6 ns 1,912,566.3 0.05 No 0.1049 - -
FrwTwemojiAdjustedBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I 🧑 Twemoji! πŸ₯³ 10,112.4 ns 22.78 ns 19.02 ns 5.28 ns 10,080.7 ns 10,102.9 ns 10,115.1 ns 10,122.6 ns 10,148.2 ns 98,888.3 0.96 No 0.3357 - -
FrwTwemojiBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I 🧑 Twemoji! πŸ₯³ 10,533.9 ns 23.61 ns 22.08 ns 5.70 ns 10,502.1 ns 10,513.7 ns 10,539.6 ns 10,551.7 ns 10,564.9 ns 94,931.9 1.00 Yes 0.3662 - -
CatCoreTwemojiReimplementationBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I 🧑 Twemoji! πŸ₯³ 521.0 ns 1.60 ns 1.50 ns 0.39 ns 518.7 ns 520.1 ns 521.4 ns 522.3 ns 523.4 ns 1,919,268.2 0.05 No 0.1049 - -
FrwTwemojiAdjustedBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I 🧑 Twemoji! πŸ₯³ 10,191.3 ns 21.50 ns 19.06 ns 5.09 ns 10,157.3 ns 10,178.6 ns 10,191.1 ns 10,202.5 ns 10,227.4 ns 98,123.1 0.96 No 0.3357 - -
FrwTwemojiBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I 🧑 Twemoji! πŸ₯³ 10,582.1 ns 69.83 ns 65.32 ns 16.87 ns 10,483.7 ns 10,536.9 ns 10,563.8 ns 10,617.9 ns 10,709.9 ns 94,499.3 1.00 Yes 0.3662 - -
CatCoreTwemojiReimplementationBenchmark Job-CIRMVA .NET 5.0 I've (...)🍚🍜 [56] 1,596.0 ns 4.54 ns 4.24 ns 1.10 ns 1,585.8 ns 1,593.8 ns 1,596.7 ns 1,598.8 ns 1,602.1 ns 626,569.3 0.09 No 0.4826 0.0134 4,040 B
FrwTwemojiAdjustedBenchmark Job-CIRMVA .NET 5.0 I've (...)🍚🍜 [56] 15,326.5 ns 57.04 ns 53.36 ns 13.78 ns 15,241.2 ns 15,292.1 ns 15,314.0 ns 15,357.5 ns 15,434.6 ns 65,246.3 0.88 No 1.6022 0.0916 13,416 B
FrwTwemojiBaselineBenchmark Job-CIRMVA .NET 5.0 I've (...)🍚🍜 [56] 17,368.4 ns 162.87 ns 152.35 ns 39.34 ns 17,158.7 ns 17,264.0 ns 17,304.0 ns 17,464.1 ns 17,676.5 ns 57,575.9 1.00 Yes 1.7090 0.0916 14,312 B
CatCoreTwemojiReimplementationBenchmark Job-NVAYXH .NET 6.0 I've (...)🍚🍜 [56] 1,637.9 ns 4.78 ns 3.99 ns 1.11 ns 1,630.7 ns 1,636.2 ns 1,637.5 ns 1,639.8 ns 1,646.0 ns 610,530.7 0.10 No 0.4826 0.0134 4,040 B
FrwTwemojiAdjustedBenchmark Job-NVAYXH .NET 6.0 I've (...)🍚🍜 [56] 14,441.9 ns 50.19 ns 44.50 ns 11.89 ns 14,382.6 ns 14,404.3 ns 14,435.3 ns 14,485.1 ns 14,511.3 ns 69,243.0 0.90 No 1.6022 0.0763 13,416 B
FrwTwemojiBaselineBenchmark Job-NVAYXH .NET 6.0 I've (...)🍚🍜 [56] 16,080.2 ns 53.03 ns 44.28 ns 12.28 ns 16,015.5 ns 16,045.6 ns 16,079.3 ns 16,115.4 ns 16,148.8 ns 62,188.3 1.00 Yes 1.7090 0.0916 14,312 B
CatCoreTwemojiReimplementationBenchmark Job-ZSFKTD .NET Framework 4.7.2 I've (...)🍚🍜 [56] 1,772.6 ns 7.80 ns 6.92 ns 1.85 ns 1,760.0 ns 1,768.4 ns 1,771.5 ns 1,775.3 ns 1,788.9 ns 564,138.3 0.05 No 0.6428 0.0153 4,060 B
FrwTwemojiAdjustedBenchmark Job-ZSFKTD .NET Framework 4.7.2 I've (...)🍚🍜 [56] 29,607.0 ns 184.99 ns 163.99 ns 43.83 ns 29,396.0 ns 29,498.4 ns 29,554.7 ns 29,729.2 ns 29,916.4 ns 33,775.8 0.87 No 2.1667 0.0916 13,873 B
FrwTwemojiBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 I've (...)🍚🍜 [56] 33,960.9 ns 185.15 ns 164.13 ns 43.87 ns 33,648.3 ns 33,853.6 ns 33,977.1 ns 34,029.7 ns 34,293.1 ns 29,445.7 1.00 Yes 2.7466 0.1221 17,724 B
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 3,886.9 ns 17.78 ns 14.85 ns 4.12 ns 3,858.7 ns 3,883.2 ns 3,890.1 ns 3,896.2 ns 3,908.4 ns 257,274.1 0.04 No 0.7782 - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 80,814.0 ns 266.87 ns 236.58 ns 63.23 ns 80,355.9 ns 80,647.9 ns 80,885.8 ns 80,967.0 ns 81,269.2 ns 12,374.1 0.93 No 2.4414 - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 I've (...)🍚🍜 [56] 86,738.8 ns 408.37 ns 381.99 ns 98.63 ns 86,151.5 ns 86,474.0 ns 86,769.1 ns 87,042.4 ns 87,404.2 ns 11,528.9 1.00 Yes 3.0518 - -
CatCoreTwemojiReimplementationBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I've (...)🍚🍜 [56] 3,159.0 ns 5.67 ns 5.30 ns 1.37 ns 3,147.9 ns 3,156.1 ns 3,159.5 ns 3,162.0 ns 3,170.7 ns 316,556.1 0.04 No 0.7820 - -
FrwTwemojiAdjustedBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I've (...)🍚🍜 [56] 82,950.7 ns 346.85 ns 307.47 ns 82.17 ns 82,574.9 ns 82,732.2 ns 82,884.1 ns 83,173.2 ns 83,640.6 ns 12,055.4 0.97 No 2.4414 - -
FrwTwemojiBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 I've (...)🍚🍜 [56] 85,485.1 ns 194.25 ns 172.20 ns 46.02 ns 85,207.4 ns 85,380.4 ns 85,430.9 ns 85,622.2 ns 85,759.7 ns 11,697.9 1.00 Yes 2.5635 - -
CatCoreTwemojiReimplementationBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I've (...)🍚🍜 [56] 3,161.4 ns 11.75 ns 9.81 ns 2.72 ns 3,145.8 ns 3,156.4 ns 3,159.4 ns 3,162.7 ns 3,183.0 ns 316,314.3 0.04 No 0.7820 - -
FrwTwemojiAdjustedBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I've (...)🍚🍜 [56] 83,066.5 ns 265.36 ns 248.22 ns 64.09 ns 82,642.1 ns 82,904.2 ns 83,083.8 ns 83,289.4 ns 83,431.3 ns 12,038.5 0.97 No 2.4414 - -
FrwTwemojiBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 I've (...)🍚🍜 [56] 85,489.2 ns 431.14 ns 360.02 ns 99.85 ns 84,971.8 ns 85,247.1 ns 85,470.9 ns 85,852.7 ns 86,159.2 ns 11,697.4 1.00 Yes 2.5635 - -
FrwTwemojiAdjustedBenchmark Job-CIRMVA .NET 5.0 Lore(...)sum. [574] 4,237.0 ns 12.83 ns 12.00 ns 3.10 ns 4,224.3 ns 4,227.4 ns 4,232.2 ns 4,249.8 ns 4,256.8 ns 236,018.3 1.00 No 0.0153 - 152 B
FrwTwemojiBaselineBenchmark Job-CIRMVA .NET 5.0 Lore(...)sum. [574] 4,240.2 ns 16.90 ns 15.81 ns 4.08 ns 4,216.9 ns 4,227.4 ns 4,236.5 ns 4,252.2 ns 4,270.7 ns 235,836.5 1.00 Yes 0.0153 - 152 B
CatCoreTwemojiReimplementationBenchmark Job-CIRMVA .NET 5.0 Lore(...)sum. [574] 6,132.2 ns 28.89 ns 27.03 ns 6.98 ns 6,092.3 ns 6,109.1 ns 6,140.6 ns 6,156.0 ns 6,168.5 ns 163,074.3 1.45 No - - 32 B
FrwTwemojiBaselineBenchmark Job-NVAYXH .NET 6.0 Lore(...)sum. [574] 4,327.8 ns 6.50 ns 5.43 ns 1.51 ns 4,321.8 ns 4,324.7 ns 4,326.2 ns 4,328.6 ns 4,340.4 ns 231,066.8 1.00 Yes 0.0153 - 152 B
FrwTwemojiAdjustedBenchmark Job-NVAYXH .NET 6.0 Lore(...)sum. [574] 4,336.9 ns 19.15 ns 15.99 ns 4.44 ns 4,320.2 ns 4,325.4 ns 4,327.2 ns 4,346.0 ns 4,366.0 ns 230,581.5 1.00 No 0.0153 - 152 B
CatCoreTwemojiReimplementationBenchmark Job-NVAYXH .NET 6.0 Lore(...)sum. [574] 5,481.0 ns 17.89 ns 16.73 ns 4.32 ns 5,451.7 ns 5,469.6 ns 5,484.5 ns 5,491.4 ns 5,504.2 ns 182,449.8 1.27 No - - 32 B
CatCoreTwemojiReimplementationBenchmark Job-ZSFKTD .NET Framework 4.7.2 Lore(...)sum. [574] 7,455.3 ns 44.34 ns 41.48 ns 10.71 ns 7,388.0 ns 7,426.9 ns 7,455.8 ns 7,478.3 ns 7,532.0 ns 134,133.6 0.44 No - - 40 B
FrwTwemojiBaselineBenchmark Job-ZSFKTD .NET Framework 4.7.2 Lore(...)sum. [574] 17,084.6 ns 121.57 ns 113.72 ns 29.36 ns 16,916.0 ns 17,007.7 ns 17,073.2 ns 17,143.7 ns 17,310.6 ns 58,532.3 1.00 Yes - - 185 B
FrwTwemojiAdjustedBenchmark Job-ZSFKTD .NET Framework 4.7.2 Lore(...)sum. [574] 17,174.3 ns 147.16 ns 130.45 ns 34.86 ns 16,994.9 ns 17,076.8 ns 17,153.3 ns 17,210.3 ns 17,443.6 ns 58,226.7 1.01 No - - 185 B
CatCoreTwemojiReimplementationBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 9,937.6 ns 32.57 ns 30.47 ns 7.87 ns 9,898.6 ns 9,914.9 ns 9,921.5 ns 9,961.7 ns 9,987.0 ns 100,627.5 0.23 No - - -
FrwTwemojiBaselineBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 42,752.9 ns 97.89 ns 91.57 ns 23.64 ns 42,607.8 ns 42,661.5 ns 42,788.4 ns 42,809.0 ns 42,899.9 ns 23,390.2 1.00 Yes - - -
FrwTwemojiAdjustedBenchmark Job-XTWDPN Mono Unity 2019.4.28f1 Lore(...)sum. [574] 42,842.8 ns 123.34 ns 115.37 ns 29.79 ns 42,714.7 ns 42,743.4 ns 42,829.9 ns 42,894.9 ns 43,047.7 ns 23,341.2 1.00 No - - -
CatCoreTwemojiReimplementationBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 Lore(...)sum. [574] 9,367.4 ns 24.10 ns 22.54 ns 5.82 ns 9,328.1 ns 9,350.7 ns 9,367.5 ns 9,381.9 ns 9,410.3 ns 106,752.7 0.20 No - - -
FrwTwemojiAdjustedBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 Lore(...)sum. [574] 46,129.3 ns 132.19 ns 117.18 ns 31.32 ns 45,980.1 ns 46,018.8 ns 46,143.7 ns 46,183.9 ns 46,373.3 ns 21,678.2 1.00 No - - -
FrwTwemojiBaselineBenchmark Job-UGEEKR Mono Unity 2021.2.0b4 Lore(...)sum. [574] 46,193.9 ns 79.22 ns 74.10 ns 19.13 ns 46,064.0 ns 46,159.0 ns 46,187.3 ns 46,244.5 ns 46,335.6 ns 21,647.9 1.00 Yes - - -
CatCoreTwemojiReimplementationBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 Lore(...)sum. [574] 9,399.0 ns 26.19 ns 21.87 ns 6.07 ns 9,369.0 ns 9,382.5 ns 9,399.3 ns 9,405.3 ns 9,442.0 ns 106,393.9 0.20 No - - -
FrwTwemojiAdjustedBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 Lore(...)sum. [574] 46,148.2 ns 113.44 ns 100.56 ns 26.88 ns 46,033.1 ns 46,081.9 ns 46,118.0 ns 46,201.9 ns 46,345.5 ns 21,669.3 1.00 No - - -
FrwTwemojiBaselineBenchmark Job-LJOXDK Mono Unity 2022.1.0a12 Lore(...)sum. [574] 46,209.8 ns 181.44 ns 169.72 ns 43.82 ns 45,954.2 ns 46,082.9 ns 46,175.9 ns 46,356.5 ns 46,542.4 ns 21,640.5 1.00 Yes - - -

Clone this wiki locally