Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(724)

Side by Side Diff: base/i18n/streaming_utf8_validator_perftest.cc

Issue 725443003: Avoid a string copy in URLRequestResourceBundleJob::GetData(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Tidy up Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/strings/string_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // All data that is passed through a WebSocket with type "Text" needs to be 5 // All data that is passed through a WebSocket with type "Text" needs to be
6 // validated as UTF8. Since this is done on the IO thread, it needs to be 6 // validated as UTF8. Since this is done on the IO thread, it needs to be
7 // reasonably fast. 7 // reasonably fast.
8 8
9 // We are only interested in the performance on valid UTF8. Invalid UTF8 will 9 // We are only interested in the performance on valid UTF8. Invalid UTF8 will
10 // result in a connection failure, so is unlikely to become a source of 10 // result in a connection failure, so is unlikely to become a source of
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 output = ConstructRepeatedTestString(output, length); 127 output = ConstructRepeatedTestString(output, length);
128 } 128 }
129 return output; 129 return output;
130 } 130 }
131 131
132 struct TestFunctionDescription { 132 struct TestFunctionDescription {
133 TestTargetType function; 133 TestTargetType function;
134 const char* function_name; 134 const char* function_name;
135 }; 135 };
136 136
137 bool IsStringUTF8(const std::string& str) {
138 return base::IsStringUTF8(base::StringPiece(str));
139 }
140
137 // IsString7Bit is intentionally placed last so it can be excluded easily. 141 // IsString7Bit is intentionally placed last so it can be excluded easily.
138 const TestFunctionDescription kTestFunctions[] = { 142 const TestFunctionDescription kTestFunctions[] = {
139 {&StreamingUtf8Validator::Validate, "StreamingUtf8Validator"}, 143 {&StreamingUtf8Validator::Validate, "StreamingUtf8Validator"},
140 {&IsStringUTF8, "IsStringUTF8"}, {&IsString7Bit, "IsString7Bit"}}; 144 {&IsStringUTF8, "IsStringUTF8"}, {&IsString7Bit, "IsString7Bit"}};
141 145
142 // Construct a test string from |construct_test_string| for each of the lengths 146 // Construct a test string from |construct_test_string| for each of the lengths
143 // in |kTestLengths| in turn. For each string, run each test in |test_functions| 147 // in |kTestLengths| in turn. For each string, run each test in |test_functions|
144 // for a number of iterations such that the total number of bytes validated 148 // for a number of iterations such that the total number of bytes validated
145 // is around 16MB. 149 // is around 16MB.
146 void RunSomeTests( 150 void RunSomeTests(
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 RunSomeTests("%s: bytes=4 ranged length=%d repeat=%d", 229 RunSomeTests("%s: bytes=4 ranged length=%d repeat=%d",
226 base::Bind(ConstructRangedTestString, 230 base::Bind(ConstructRangedTestString,
227 kFourByteSeqRangeStart, 231 kFourByteSeqRangeStart,
228 kFourByteSeqRangeEnd), 232 kFourByteSeqRangeEnd),
229 kTestFunctions, 233 kTestFunctions,
230 2); 234 2);
231 } 235 }
232 236
233 } // namespace 237 } // namespace
234 } // namespace base 238 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | base/strings/string_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698