From: Christopher Dykes Date: Wed, 9 Nov 2016 19:07:51 +0000 (-0800) Subject: Split the benchmarks out of UriTest X-Git-Tag: v2016.11.14.00~21 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d25ca56fb1d6d74ba958d868d9c884b5401ae396;p=folly.git Split the benchmarks out of UriTest Summary: So that they can be run independently of the tests. Reviewed By: yfeldblum Differential Revision: D4150331 fbshipit-source-id: 3ab39024795add84885436b757f2505527297a3d --- diff --git a/folly/test/UriBenchmark.cpp b/folly/test/UriBenchmark.cpp new file mode 100644 index 00000000..cd22a3f9 --- /dev/null +++ b/folly/test/UriBenchmark.cpp @@ -0,0 +1,89 @@ +/* + * Copyright 2016 Facebook, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include +#include + +using namespace folly; + +/** + * Result of benchmark varies by the complexity of query. + * ============================================================================ + * folly/test/UriTest.cpp relative time/iter iters/s + * ============================================================================ + * init_uri_simple 4.88us 204.80K + * init_uri_simple_with_query_parsing 22.46us 44.52K + * init_uri_complex 5.92us 168.85K + * init_uri_complex_with_query_parsing 48.70us 20.53K + * ============================================================================ + */ +BENCHMARK(init_uri_simple, iters) { + const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); + for (size_t i = 0; i < iters; ++i) { + Uri u(s); + } +} + +BENCHMARK(init_uri_simple_with_query_parsing, iters) { + const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); + for (size_t i = 0; i < iters; ++i) { + Uri u(s); + u.getQueryParams(); + } +} + +BENCHMARK(init_uri_complex, iters) { + const fbstring s( + "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" + "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" + "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" + "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" + "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" + "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" + "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" + "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" + "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" + "tYn4"); + for (size_t i = 0; i < iters; ++i) { + Uri u(s); + } +} + +BENCHMARK(init_uri_complex_with_query_parsing, iters) { + const fbstring s( + "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" + "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" + "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" + "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" + "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" + "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" + "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" + "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" + "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" + "tYn4"); + for (size_t i = 0; i < iters; ++i) { + Uri u(s); + u.getQueryParams(); + } +} + +int main(int argc, char** argv) { + folly::init(&argc, &argv); + folly::runBenchmarks(); + return 0; +} diff --git a/folly/test/UriTest.cpp b/folly/test/UriTest.cpp index cd1e8e4f..19fa9538 100644 --- a/folly/test/UriTest.cpp +++ b/folly/test/UriTest.cpp @@ -15,7 +15,6 @@ */ #include -#include #include #include @@ -24,10 +23,6 @@ using namespace folly; -namespace { - -} // namespace - TEST(Uri, Simple) { { fbstring s("http://www.facebook.com/hello/world?query#fragment"); @@ -413,74 +408,3 @@ TEST(Uri, Simple) { EXPECT_EQ(s, u.fbstr()); } } - -/** - * Result of benchmark varies by the complexity of query. - * ============================================================================ - * folly/test/UriTest.cpp relative time/iter iters/s - * ============================================================================ - * init_uri_simple 4.88us 204.80K - * init_uri_simple_with_query_parsing 22.46us 44.52K - * init_uri_complex 5.92us 168.85K - * init_uri_complex_with_query_parsing 48.70us 20.53K - * ============================================================================ - */ -BENCHMARK(init_uri_simple, iters) { - const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); - for (size_t i = 0; i < iters; ++i) { - Uri u(s); - } -} - -BENCHMARK(init_uri_simple_with_query_parsing, iters) { - const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); - for (size_t i = 0; i < iters; ++i) { - Uri u(s); - u.getQueryParams(); - } -} - -BENCHMARK(init_uri_complex, iters) { - const fbstring s( - "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" - "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" - "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" - "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" - "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" - "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" - "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" - "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" - "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" - "tYn4"); - for (size_t i = 0; i < iters; ++i) { - Uri u(s); - } -} - -BENCHMARK(init_uri_complex_with_query_parsing, iters) { - const fbstring s( - "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" - "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" - "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" - "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" - "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" - "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" - "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" - "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" - "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" - "tYn4"); - for (size_t i = 0; i < iters; ++i) { - Uri u(s); - u.getQueryParams(); - } -} - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - auto r = RUN_ALL_TESTS(); - if (r) { - return r; - } - runBenchmarks(); - return 0; -}