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 Build with dotnet 2016-01-07 14:22:25 -08:00
.gitignore Build with dotnet 2016-01-07 14:22:25 -08:00
.travis.yml Build with dotnet 2016-01-07 14:22:25 -08:00
CONTRIBUTING.md
HttpAbstractions.sln Rename AspNet 5 file contents. 2016-01-22 12:20:40 -08:00
LICENSE.txt
NuGet.config
NuGetPackageVerifier.json Enabled xml doc generation 2016-02-18 16:32:10 -08:00
README.md
appveyor.yml
build.cmd Return the error code from build.cmd 2016-02-28 10:12:13 -08:00
build.ps1 Update the build scripts 2016-02-27 12:51:09 -08:00
build.sh Update the build scripts 2016-02-27 12:51:09 -08:00
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.