• 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-span2
branch: mimereader-span2
CHANGE BRANCH
x
Reset
  • mimereader-span2
  • 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-span
  • 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

03 May 2025 11:12PM UTC coverage: 94.815% (-0.02%) from 94.835%
4.12.0.1624

push

coveralls.net

jstedfast
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 for a '\n' in ScanContent().

It also allows me to now use Span<T>.IndexOf() in all other locations
that were using `while (*inptr != '\n') inptr++`, so we get improved
performance in those locations for free.

As an added benefit, the code is cleaner when using Span<T> instead of
pointers. The Async code, especially, is a lot cleaner not having to
used unsafe/fixed statements everywhere.

The downside is that Span<T>.IndexOf() is *slower* than my current
optimizations 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.

32059 of 33812 relevant lines covered (94.82%)

0.95 hits per line

Relevant lines Covered
Build:
Build:
33812 RELEVANT LINES 32059 COVERED LINES
0.95 HITS PER LINE
Source Files on mimereader-span2
  • 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.1624 mimereader-span2 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 for a '\n' in ScanContent()... push 03 May 2025 11:24PM UTC jstedfast coveralls.net
94.82
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