orthecreedence/http-parse — pull request #15 by KeenS (2014-10-08 09:57:38+00:00)
Title: Making faster

The main change is avoiding memory copying.

Here are benchmark results. I measured with sbcl-1.2.1.
Benchmark on fukamachi/fast (same as orthecreedence/master)
```
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.364s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.318s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.312s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.286s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.301s
NIL
```

KeenS/fast
```
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 1.15s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 0.966s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 0.966s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 0.95s
NIL
CL-USER> (http-parse-test::bench-request-parse-speed)
BENCH: Request Parse speed: 0.947s
NIL
```

Thus
```lisp
(* (- (/ (+ 1.286 1.364 1.318 1.312 1.301)
(+ 1.15 0.966 0.966 0.95 0.947)) 1) 100)
;=> 32.17513556939144
```

It got **32%** faster