From 9e74bd7802b01eda24fb5cd48a2db61e258cf705 Mon Sep 17 00:00:00 2001 From: cxl Date: Wed, 5 Mar 2014 17:42:32 +0000 Subject: [PATCH] .benchmarks git-svn-id: svn://ultimatepp.org/upp/trunk@6994 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/StringFind/main.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/benchmarks/StringFind/main.cpp b/benchmarks/StringFind/main.cpp index 7e132dafa..5bb7b3a8a 100644 --- a/benchmarks/StringFind/main.cpp +++ b/benchmarks/StringFind/main.cpp @@ -75,17 +75,24 @@ void test_find(const char *data, const char *pattern) void DoTest(const String& data, const String& needle) { RLOG("------------"); - RLOG("Needle: " << needle); + RLOG("Needle: " << needle << " (" << needle.GetCount() << ")"); { TimeStop tm; RLOG("U++ Brute force: " << data.Find(needle)); RLOG(" Time elapsed: " << tm); } + { + TimeStop tm; + void *t = memmem(data, data.GetLength(), needle, needle.GetLength()); + RLOG("memmem: " << (t ? (char *)t - ~data : -1)); + RLOG(" Time elapsed: " << tm); + } { TimeStop tm; RLOG("Folly: " << ffind(data, data.GetLength(), needle, needle.GetCount())); RLOG(" Time elapsed: " << tm); } +#if 0 { TimeStop tm; uint8_t* t = boyer_moore ((uint8_t *)~data, data.GetCount(), @@ -99,6 +106,7 @@ void DoTest(const String& data, const String& needle) RLOG("Boyer-Moore: " << bm.FindIn(data)); RLOG(" Time elapsed: " << tm); } +#endif } CONSOLE_APP_MAIN @@ -129,6 +137,7 @@ CONSOLE_APP_MAIN DoTest(data, "aab"); DoTest(data, "aaab"); DoTest(data, "aaaab"); + DoTest(data, "aaaaaaaaaaaaab"); DoTest(data, "aaaaaaaaaaaaaaaaaab"); DoTest(data, String('a', 100) + "b"); @@ -173,6 +182,6 @@ CONSOLE_APP_MAIN n.Set(60, ' '); for(int i = 0; i < 1000000; i++) data << n; - data << needle; + data << needle << data; DoTest(data, needle); }