Commit 0fe4b373 authored by Bence Béky's avatar Bence Béky Committed by Commit Bot

Don't use PrintF/AppendF in spdy.

StrCat is 2-4x faster, so use that instead of Printf/Appendf.

This CL lands server changes 211484351 by dzetkulic and
215218657 by bnc.

BUG=488484

Change-Id: I5b6cab6db94c1cb5f75106832d45858a92924875
Reviewed-on: https://chromium-review.googlesource.com/1252161
Commit-Queue: Bence Béky <bnc@chromium.org>
Reviewed-by: default avatarDianna Hu <diannahu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595631}
parent 7e75ccc7
...@@ -50,8 +50,8 @@ def CheckChange(input_api, message_type): ...@@ -50,8 +50,8 @@ def CheckChange(input_api, message_type):
"Include \"net/third_party/spdy/platform/api/spdy_string_utils.h\" " "Include \"net/third_party/spdy/platform/api/spdy_string_utils.h\" "
"instead of \"net/base/hex_utils.h\"", "instead of \"net/base/hex_utils.h\"",
"Use SpdyStringPiece instead of base::StringPiece", "Use SpdyStringPiece instead of base::StringPiece",
"Use SpdyStringPrintf instead of base::StringPrintf", "Use SpdyStrCat instead of base::StringPrintf",
"Use SpdyStringAppendF instead of base::StringAppendF", "Use SpdyStrCat instead of base::StringAppendF",
"Use SpdyHexDigitToInt instead of base::HexDigitToInt", "Use SpdyHexDigitToInt instead of base::HexDigitToInt",
"Use SpdyHexDecode instead of HexDecode", "Use SpdyHexDecode instead of HexDecode",
"Use SpdyHexDump instead of HexDump", "Use SpdyHexDump instead of HexDump",
......
...@@ -78,10 +78,10 @@ size_t HpackEntry::Size() const { ...@@ -78,10 +78,10 @@ size_t HpackEntry::Size() const {
} }
SpdyString HpackEntry::GetDebugString() const { SpdyString HpackEntry::GetDebugString() const {
return SpdyStringPrintf( return SpdyStrCat(
"{ name: \"%.*s\", value: \"%.*s\", index: %d %s }", name_ref_.size(), "{ name: \"", name_ref_, "\", value: \"", value_ref_,
name_ref_.data(), value_ref_.size(), value_ref_.data(), insertion_index_, "\", index: ", insertion_index_, " ",
(IsStatic() ? " static" : (IsLookup() ? " lookup" : " dynamic"))); (IsStatic() ? " static" : (IsLookup() ? " lookup" : " dynamic")), " }");
} }
size_t HpackEntry::EstimateMemoryUsage() const { size_t HpackEntry::EstimateMemoryUsage() const {
......
...@@ -47,7 +47,7 @@ SpdyAltSvcWireFormat::AlternativeService::AlternativeService( ...@@ -47,7 +47,7 @@ SpdyAltSvcWireFormat::AlternativeService::AlternativeService(
host(host), host(host),
port(port), port(port),
max_age(max_age), max_age(max_age),
version(version) {} version(std::move(version)) {}
SpdyAltSvcWireFormat::AlternativeService::~AlternativeService() = default; SpdyAltSvcWireFormat::AlternativeService::~AlternativeService() = default;
...@@ -264,9 +264,9 @@ SpdyString SpdyAltSvcWireFormat::SerializeHeaderFieldValue( ...@@ -264,9 +264,9 @@ SpdyString SpdyAltSvcWireFormat::SerializeHeaderFieldValue(
} }
value.push_back(c); value.push_back(c);
} }
SpdyStringAppendF(&value, ":%d\"", altsvc.port); value.append(SpdyStrCat(":", altsvc.port, "\""));
if (altsvc.max_age != 86400) { if (altsvc.max_age != 86400) {
SpdyStringAppendF(&value, "; ma=%d", altsvc.max_age); value.append(SpdyStrCat("; ma=", altsvc.max_age));
} }
if (!altsvc.version.empty()) { if (!altsvc.version.empty()) {
if (is_ietf_format_quic) { if (is_ietf_format_quic) {
...@@ -281,7 +281,7 @@ SpdyString SpdyAltSvcWireFormat::SerializeHeaderFieldValue( ...@@ -281,7 +281,7 @@ SpdyString SpdyAltSvcWireFormat::SerializeHeaderFieldValue(
if (it != altsvc.version.begin()) { if (it != altsvc.version.begin()) {
value.append(","); value.append(",");
} }
SpdyStringAppendF(&value, "%d", *it); value.append(SpdyStrCat(*it));
} }
value.append("\""); value.append("\"");
} }
......
...@@ -29,16 +29,6 @@ inline void SpdyStrAppend(SpdyString* output, const Args&... args) { ...@@ -29,16 +29,6 @@ inline void SpdyStrAppend(SpdyString* output, const Args&... args) {
SpdyStrAppendImpl(output, std::forward<const Args&>(args)...); SpdyStrAppendImpl(output, std::forward<const Args&>(args)...);
} }
template <typename... Args>
inline SpdyString SpdyStringPrintf(const Args&... args) {
return SpdyStringPrintfImpl(std::forward<const Args&>(args)...);
}
template <typename... Args>
inline void SpdyStringAppendF(const Args&... args) {
SpdyStringAppendFImpl(std::forward<const Args&>(args)...);
}
inline char SpdyHexDigitToInt(char c) { inline char SpdyHexDigitToInt(char c) {
return SpdyHexDigitToIntImpl(c); return SpdyHexDigitToIntImpl(c);
} }
......
...@@ -165,29 +165,6 @@ TEST(SpdyStringUtilsTest, SpdyStrAppend) { ...@@ -165,29 +165,6 @@ TEST(SpdyStringUtilsTest, SpdyStrAppend) {
EXPECT_EQ("foo1foo081bar3.141513.141511bar18bar13.14150", output); EXPECT_EQ("foo1foo081bar3.141513.141511bar18bar13.14150", output);
} }
TEST(SpdyStringUtilsTest, SpdyStringPrintf) {
EXPECT_EQ("", SpdyStringPrintf("%s", ""));
EXPECT_EQ("foobar", SpdyStringPrintf("%sbar", "foo"));
EXPECT_EQ("foobar", SpdyStringPrintf("%s%s", "foo", "bar"));
EXPECT_EQ("foo: 1, bar: 2.0", SpdyStringPrintf("foo: %d, bar: %.1f", 1, 2.0));
}
TEST(SpdyStringUtilsTest, SpdyStringAppendF) {
SpdyString output;
SpdyStringAppendF(&output, "%s", "");
EXPECT_TRUE(output.empty());
SpdyStringAppendF(&output, "%sbar", "foo");
EXPECT_EQ("foobar", output);
SpdyStringAppendF(&output, "%s%s", "foo", "bar");
EXPECT_EQ("foobarfoobar", output);
SpdyStringAppendF(&output, "foo: %d, bar: %.1f", 1, 2.0);
EXPECT_EQ("foobarfoobarfoo: 1, bar: 2.0", output);
}
TEST(SpdyStringUtilsTest, SpdyHexDigitToInt) { TEST(SpdyStringUtilsTest, SpdyHexDigitToInt) {
EXPECT_EQ(0, SpdyHexDigitToInt('0')); EXPECT_EQ(0, SpdyHexDigitToInt('0'));
EXPECT_EQ(1, SpdyHexDigitToInt('1')); EXPECT_EQ(1, SpdyHexDigitToInt('1'));
......
...@@ -31,16 +31,6 @@ inline void SpdyStrAppendImpl(SpdyString* output, Args... args) { ...@@ -31,16 +31,6 @@ inline void SpdyStrAppendImpl(SpdyString* output, Args... args) {
output->append(SpdyStrCatImpl(args...)); output->append(SpdyStrCatImpl(args...));
} }
template <typename... Args>
inline SpdyString SpdyStringPrintfImpl(const Args&... args) {
return base::StringPrintf(std::forward<const Args&>(args)...);
}
template <typename... Args>
inline void SpdyStringAppendFImpl(const Args&... args) {
base::StringAppendF(std::forward<const Args&>(args)...);
}
inline char SpdyHexDigitToIntImpl(char c) { inline char SpdyHexDigitToIntImpl(char c) {
return base::HexDigitToInt(c); return base::HexDigitToInt(c);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment