Go to file
David Obando 15649b7e31 Faster SubMatch implementation
Submatch has been sped up by implementing a modified Boyer–Moore–Horspool algorithm with an average-case complexity of O(N) on random text. Worst case, it behaves similarly to the previous implementation O(MN), where M is the length of the boundary and N is the length of the buffer to operate on.

Method SubMatch looks for two things:

  1. Whether the byte array segment fully contains the boundary, or
  2. Whether the byte array ends with the start of the boundary.

Case 1 is now a lot faster than the previous implementation. Case 2 remains using the same code as before. The method will do Case 1 until the matchOffset is equal to N-M. It then switches to Case 2, unless a match is found.

The code can be further sped up with a full Boyer–Moore implementation, or something more sophisticated. This however can be evaluated in the case that this implementation is insufficiently performant for our main scenarios.

This commit resolves issue #575.
2016-03-04 10:54:20 -08:00
samples/SampleApp Remove project name from output path 2016-03-02 18:51:48 -08:00
src Faster SubMatch implementation 2016-03-04 10:54:20 -08:00
test Faster SubMatch implementation 2016-03-04 10:54:20 -08:00
tools
.gitattributes
.gitignore
.travis.yml
CONTRIBUTING.md
HttpAbstractions.sln
LICENSE.txt
NuGet.config
NuGetPackageVerifier.json
README.md
appveyor.yml
build.cmd Return the error code from build.cmd 2016-02-28 10:12:13 -08:00
build.ps1
build.sh
global.json
makefile.shade

README.md

HttpAbstractions

AppVeyor Travis
AppVeyor Travis

Contains HTTP abstractions for ASP.NET 5 such as HttpContext, HttpRequest, HttpResponse and RequestDelegate.

It also contains IApplicationBuilder and extensions to create and compose your application's pipeline.

This project is part of ASP.NET 5. You can find samples, documentation and getting started instructions for ASP.NET 5 at the Home repo.