From: Amos Jeffries Date: Mon, 2 Jun 2014 13:47:54 +0000 (-0700) Subject: Mark some performance regressions X-Git-Tag: merge-candidate-3-v1~506^2~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2169fd4dee1679de240f97b7baf4b067f5799fe0;p=thirdparty%2Fsquid.git Mark some performance regressions --- diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index c19901dc7c..b3b8f15c79 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -317,13 +317,13 @@ bool HttpRequest::parseFirstLine(const char *start, const char *end) { const char *t = start + strcspn(start, w_space); - SBuf m(start, start-t); + SBuf m(start, start-t); // XXX: SBuf ctor allocates and data-copies. performance regression. method = HttpRequestMethod(m); if (method == Http::METHOD_NONE) return false; - start = t + strspn(t, w_space); + start = t + strspn(t, w_space); // XXX: breaks if whitespace exists in URL const char *ver = findTrailingHTTPVersion(start, end); @@ -369,6 +369,7 @@ HttpRequest::parseHeader(Http1::RequestParser &hp) if (!hp.headerBlockSize()) return true; + // XXX: c_str() reallocates. performance regression. const bool result = header.parse(hp.mimeHeader().c_str(), hp.headerBlockSize()); if (result) diff --git a/src/http/one/RequestParser.cc b/src/http/one/RequestParser.cc index 7e0d94922a..9e8ba8aa59 100644 --- a/src/http/one/RequestParser.cc +++ b/src/http/one/RequestParser.cc @@ -334,6 +334,7 @@ Http::One::RequestParser::parse(const SBuf &aBuf) * (ie, none, so don't try parsing em) */ int64_t mimeHeaderBytes = 0; + // XXX: c_str() reallocates. performance regression. if ((mimeHeaderBytes = headersEnd(buf_.c_str(), buf_.length())) == 0) { if (buf_.length()+firstLineSize() >= Config.maxRequestHeaderSize) { debugs(33, 5, "Too large request");