aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo@gcc.gnu.org>2010-09-14 10:27:36 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2010-09-14 10:27:36 +0000
commita5d39cb4a73d1e62a766da04f729f39b195faf60 (patch)
treeb31c4b208d2c256f3a0cea028ab65be39c755d8d
parentd191cd06b99a69fdfe30ab2e9c4b0f1d2b48d524 (diff)
downloadgcc-a5d39cb4a73d1e62a766da04f729f39b195faf60.zip
gcc-a5d39cb4a73d1e62a766da04f729f39b195faf60.tar.gz
gcc-a5d39cb4a73d1e62a766da04f729f39b195faf60.tar.bz2
[multiple changes]
2010-09-14 Matt Austern <austern@google.com> Paolo Carlini <paolo.carlini@oracle.com> * testsuite/performance/21_strings/hash.cc: New. 2010-09-14 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/performance/21_strings/string_append.cc: Rename to... * testsuite/performance/21_strings/append-1.cc: ... this. * testsuite/performance/21_strings/string_append_2.cc: Rename to... * testsuite/performance/21_strings/append-2.cc: ... this. * testsuite/performance/21_strings/string_cons_input_iterator.cc: Rename to... * testsuite/performance/21_strings/cons_input_iterator.cc: ... this. * testsuite/performance/21_strings/string_copy_cons_and_dest.cc: Rename to... * testsuite/performance/21_strings/copy_cons_and_dest.cc: ... this. * testsuite/performance/21_strings/string_find.cc: Rename to... * testsuite/performance/21_strings/find.cc: ... this. From-SVN: r164278
-rw-r--r--libstdc++-v3/ChangeLog20
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/append-1.cc (renamed from libstdc++-v3/testsuite/performance/21_strings/string_append.cc)0
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/append-2.cc (renamed from libstdc++-v3/testsuite/performance/21_strings/string_append_2.cc)0
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc (renamed from libstdc++-v3/testsuite/performance/21_strings/string_cons_input_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc (renamed from libstdc++-v3/testsuite/performance/21_strings/string_copy_cons_and_dest.cc)0
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/find.cc (renamed from libstdc++-v3/testsuite/performance/21_strings/string_find.cc)0
-rw-r--r--libstdc++-v3/testsuite/performance/21_strings/hash.cc58
7 files changed, 78 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4b080b4..e1886d5 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,23 @@
+2010-09-14 Matt Austern <austern@google.com>
+ Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/performance/21_strings/hash.cc: New.
+
+2010-09-14 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/performance/21_strings/string_append.cc: Rename to...
+ * testsuite/performance/21_strings/append-1.cc: ... this.
+ * testsuite/performance/21_strings/string_append_2.cc: Rename to...
+ * testsuite/performance/21_strings/append-2.cc: ... this.
+ * testsuite/performance/21_strings/string_cons_input_iterator.cc:
+ Rename to...
+ * testsuite/performance/21_strings/cons_input_iterator.cc: ... this.
+ * testsuite/performance/21_strings/string_copy_cons_and_dest.cc:
+ Rename to...
+ * testsuite/performance/21_strings/copy_cons_and_dest.cc: ... this.
+ * testsuite/performance/21_strings/string_find.cc: Rename to...
+ * testsuite/performance/21_strings/find.cc: ... this.
+
2010-09-13 Benjamin Kosnik <bkoz@redhat.com>
* doc/xml/api.xml: Add title.
diff --git a/libstdc++-v3/testsuite/performance/21_strings/string_append.cc b/libstdc++-v3/testsuite/performance/21_strings/append-1.cc
index 60a9a86..60a9a86 100644
--- a/libstdc++-v3/testsuite/performance/21_strings/string_append.cc
+++ b/libstdc++-v3/testsuite/performance/21_strings/append-1.cc
diff --git a/libstdc++-v3/testsuite/performance/21_strings/string_append_2.cc b/libstdc++-v3/testsuite/performance/21_strings/append-2.cc
index 8c44cb0..8c44cb0 100644
--- a/libstdc++-v3/testsuite/performance/21_strings/string_append_2.cc
+++ b/libstdc++-v3/testsuite/performance/21_strings/append-2.cc
diff --git a/libstdc++-v3/testsuite/performance/21_strings/string_cons_input_iterator.cc b/libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
index fcf3eb8..fcf3eb8 100644
--- a/libstdc++-v3/testsuite/performance/21_strings/string_cons_input_iterator.cc
+++ b/libstdc++-v3/testsuite/performance/21_strings/cons_input_iterator.cc
diff --git a/libstdc++-v3/testsuite/performance/21_strings/string_copy_cons_and_dest.cc b/libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
index 1ec18d3..1ec18d3 100644
--- a/libstdc++-v3/testsuite/performance/21_strings/string_copy_cons_and_dest.cc
+++ b/libstdc++-v3/testsuite/performance/21_strings/copy_cons_and_dest.cc
diff --git a/libstdc++-v3/testsuite/performance/21_strings/string_find.cc b/libstdc++-v3/testsuite/performance/21_strings/find.cc
index eeda080..eeda080 100644
--- a/libstdc++-v3/testsuite/performance/21_strings/string_find.cc
+++ b/libstdc++-v3/testsuite/performance/21_strings/find.cc
diff --git a/libstdc++-v3/testsuite/performance/21_strings/hash.cc b/libstdc++-v3/testsuite/performance/21_strings/hash.cc
new file mode 100644
index 0000000..0c409c5
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/21_strings/hash.cc
@@ -0,0 +1,58 @@
+#include <string>
+#include <vector>
+#include <unordered_set>
+#include <cstdlib>
+#include <random>
+#include <testsuite_performance.h>
+
+using namespace std;
+
+vector<string>
+random_strings(int n, int len)
+{
+ string s(len, '\0');
+ unordered_set<string> result_set;
+ random_device rd;
+ while (result_set.size() < n)
+ {
+ result_set.insert(s);
+ unsigned int tmp = rd();
+ tmp %= len * 256;
+ s[tmp / 256] = tmp % 256;
+ }
+ return vector<string>(result_set.begin(), result_set.end());
+}
+
+int
+main(int argc, char **argv)
+{
+ using namespace __gnu_test;
+ time_counter time;
+ resource_counter resource;
+
+ int string_size = 71;
+ int num_strings = 6000000;
+ if (argc > 1)
+ {
+ string_size = atoi(argv[1]);
+ if (argc > 2)
+ num_strings = atoi(argv[2]);
+ }
+
+ // Construct random strings.
+ vector<string> v = random_strings(num_strings, string_size);
+
+ // Time hashing.
+ size_t tmp = 0; // prevent compiler from optimizing away all the work
+ start_counters(time, resource);
+ for (int i = 0; i < num_strings; i++)
+ tmp += hash<string>()(v[i]);
+ stop_counters(time, resource);
+
+ if (tmp != 0 || argc < 9) // use tmp to prevent compiler optimization
+ report_performance(__FILE__, "", time, resource);
+
+ clear_counters(time, resource);
+
+ return 0;
+}