• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jstedfast / MimeKit
95%
master: 95%

Build:
Build:
LAST BUILD BRANCH: nullable-api2
DEFAULT BRANCH: master
Repo Added 28 Jun 2015 11:55PM UTC
Files 191
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH mimereader-span
branch: mimereader-span
CHANGE BRANCH
x
Reset
  • mimereader-span
  • HEAD
  • binary-quoted-printable-decoder
  • bouncycastle2.0
  • core
  • crypto-abstractions
  • dependabot/nuget/System.Memory-4.5.5
  • dependabot/nuget/nunit-4.0.0
  • hwaccel-base64
  • issue682
  • master
  • mime-compliance
  • mime-compliance2
  • mimereader
  • mimereader-span2
  • nullable-api
  • nullable-api2
  • parser-options-create
  • refs/pull/1072/merge
  • refs/pull/1162/merge
  • refs/pull/1163/merge
  • refs/pull/1176/merge
  • refs/tags/2.12.0
  • refs/tags/3.3.0
  • refs/tags/3.4.1
  • refs/tags/3.4.3
  • rfc2047-perf
  • rfc2047-tokens
  • smime-revocation-checks
  • stream-spans
  • unix2dos-indexof
  • unsafe-scancontent
  • vnext

04 May 2025 08:46PM UTC coverage: 94.812% (-0.02%) from 94.827%
4.12.0.1630

Pull #1162

coveralls.net

jstedfast
Refactored MimeReader to use ReadOnlySpan<byte> instead of unsafe byte*

The main advantage of this change is to make the code a bit nicer. The
AsyncMimeReader code, especially, becomes a lot nicer with this change.

The other advantage is that Spans don't interfere with the GC like pinned
memory buffers do, which could theoretically mean that using MimeReader is
less likely to result in memory fragmentation (although not sure on the
real-world consequences of the previous code in practice).

The downside is that ReadOnlySpan<byte>.IndexOf() is *slower* than the
current implementation on .NET Framework and possibly also even .NET Core
where the platform architecture does not have support for SIMD.

That's why this PR is a Work-In-Progress and not yet merged to master.
Pull Request #1162: [WIP] Refactored MimeReader to use ReadOnlySpan<byte> instead of unsafe byte*

32036 of 33789 relevant lines covered (94.81%)

0.95 hits per line

Relevant lines Covered
Build:
Build:
33789 RELEVANT LINES 32036 COVERED LINES
0.95 HITS PER LINE
Source Files on mimereader-span
  • Tree
  • List 188
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
4.12.0.1630 mimereader-span Refactored MimeReader to use ReadOnlySpan<byte> instead of unsafe byte* The main advantage of this change is to make the code a bit nicer. The AsyncMimeReader code, especially, becomes a lot nicer with this change. The other advantage is that Sp... Pull #1162 04 May 2025 08:56PM UTC jstedfast coveralls.net
94.81
4.12.0.1627 mimereader-span Refactored MimeReader to use ReadOnlySpan<byte> instead of unsafe byte* The main advantage of this change is to make the code a bit nicer. The AsyncMimeReader code, especially, becomes a lot nicer with this change. The other advantage is that Sp... Pull #1162 04 May 2025 08:01PM UTC jstedfast coveralls.net
94.82
4.10.0.1522 mimereader-span Replace MimeReader calls to IndexOf('\n') with new EndOfLine() method This was an attempt at overcoming the performance degradation of using Span<byte> in place of raw pointers in MimeReader, specifically for the .NET 4.x frameworks. Unfortunate... push 04 Feb 2025 12:12AM UTC jstedfast coveralls.net
94.52
4.10.0.1521 mimereader-span Replace MimeReader calls to IndexOf('\n') with new EndOfLine() method This was an attempt at overcoming the performance degradation of using Span<byte> in place of raw pointers in MimeReader, specifically for the .NET 4.x frameworks. Unfortunate... push 03 Feb 2025 02:24PM UTC jstedfast coveralls.net
94.53
4.10.0.1500 mimereader-span Update MimeReader to use Span<T> for built-in intrinsics It's gotten to a point where .NET Core's built-in SIMD optimizations in Span<T>.IndexOf() have gotten as good or better than my current optimization for scanning until a '\n' in ScanContent... push 29 Jan 2025 10:01PM UTC jstedfast coveralls.net
94.51
4.9.0.1492 mimereader-span Update MimeReader to use Span<T> for built-in intrinsics It's gotten to a point where .NET Core's built-in SIMD optimizations in Span<T>.IndexOf() have gotten as good or better than my current optimization for scanning until a '\n' in ScanContent... push 25 Jan 2025 10:33PM UTC jstedfast coveralls.net
94.51
4.9.0.1474 mimereader-span Update MimeReader to use Span<T> for built-in intrinsics It's gotten to a point where .NET Core's built-in SIMD optimizations in Span<T>.IndexOf() have gotten as good or better than my current optimization for scanning until a '\n' in ScanContent... push 03 Jan 2025 02:06AM UTC jstedfast coveralls.net
94.31
See All Builds (2614)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc