OSDN Git Service

2005-01-18 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jan 2005 16:44:51 +0000 (16:44 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jan 2005 16:44:51 +0000 (16:44 +0000)
* testsuite/testsuite_performance.h (time_counter::start):
Clear. Tweaks.
(clear_counters): Inline.
(start_counters): Inline.
(stop_counters): Inline.
* testsuite/performance/20_util/allocator/map_thread.cc: Return.
* testsuite/performance/20_util/allocator/insert.cc: Remove bogus
return, add return.
* testsuite/performance/20_util/allocator/map_thread.cc: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93834 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/performance/20_util/allocator/insert.cc
libstdc++-v3/testsuite/performance/20_util/allocator/insert_insert.cc
libstdc++-v3/testsuite/performance/20_util/allocator/map_thread.cc
libstdc++-v3/testsuite/testsuite_performance.h

index 8bd52a5..a8ff690 100644 (file)
@@ -1,3 +1,15 @@
+2005-01-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * testsuite/testsuite_performance.h (time_counter::start):
+       Clear. Tweaks.
+       (clear_counters): Inline.
+       (start_counters): Inline.
+       (stop_counters): Inline.
+       * testsuite/performance/20_util/allocator/map_thread.cc: Return.
+       * testsuite/performance/20_util/allocator/insert.cc: Remove bogus
+       return, add return.
+       * testsuite/performance/20_util/allocator/map_thread.cc: Same.
+       
 2005-01-17  Paolo Carlini  <pcarlini@suse.de>
 
        PR libstdc++/19433
index 372b7e0..ab53afc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -92,6 +92,7 @@ template<typename Container>
   do_test(void* p = NULL)
   {
     do_loop<Container>();
+    return p;
   }
 
 template<typename Container>
@@ -103,42 +104,39 @@ template<typename Container>
 
     time_counter time;
     resource_counter resource;
-    clear_counters(time, resource);
-    start_counters(time, resource);
-
-    if (! run_threaded)
-      {
-       do_loop<Container>();
-      }
-    else
-      {
+    {
+      start_counters(time, resource);
+      if (!run_threaded)
+       {
+         do_loop<Container>();
+       }
+      else
+       {
 #if defined (_GLIBCXX_GCC_GTHR_POSIX_H) && !defined (NOTHREAD)
-       pthread_t  t1, t2, t3, t4;
-       pthread_create(&t1, 0, &do_test<Container>, 0);
-       pthread_create(&t2, 0, &do_test<Container>, 0);
-       pthread_create(&t3, 0, &do_test<Container>, 0);
-       pthread_create(&t4, 0, &do_test<Container>, 0);
-
-       pthread_join(t1, NULL);
-       pthread_join(t2, NULL);
-       pthread_join(t3, NULL);
-       pthread_join(t4, NULL);
-#else
-       return;
-#endif
-      }
+         pthread_t  t1, t2, t3, t4;
+         pthread_create(&t1, 0, &do_test<Container>, 0);
+         pthread_create(&t2, 0, &do_test<Container>, 0);
+         pthread_create(&t3, 0, &do_test<Container>, 0);
+         pthread_create(&t4, 0, &do_test<Container>, 0);
+         
+         pthread_join(t1, NULL);
+         pthread_join(t2, NULL);
+         pthread_join(t3, NULL);
+         pthread_join(t4, NULL);
+#endif
+       }
+      stop_counters(time, resource);
 
-    stop_counters(time, resource);
-    std::ostringstream comment;
-    if (run_threaded)
-      comment << "4-way threaded iterations: " << iterations*4 << '\t';
-    else
-      comment << "iterations: " << iterations << '\t';
-    comment << "type: " << abi::__cxa_demangle(typeid(obj).name(),
-                                              0, 0, &status);
-    report_header(__FILE__, comment.str());
-    report_performance(__FILE__, string(), time, resource);
+      std::ostringstream comment;
+      if (run_threaded)
+       comment << "4-way threaded iterations: " << iterations*4 << '\t';
+      else
+       comment << "iterations: " << iterations << '\t';
+      comment << "type: " << abi::__cxa_demangle(typeid(obj).name(),
+                                                0, 0, &status);
+      report_header(__FILE__, comment.str());
+      report_performance(__FILE__, string(), time, resource);
+    }
   }
 
 // http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html
index 455c9a4..f0a3e75 100644 (file)
@@ -96,20 +96,19 @@ template<typename Container>
 
     time_counter time;
     resource_counter resource;
-    clear_counters(time, resource);
-    start_counters(time, resource);
-
-    do_loop<Container>();
-    do_loop<Container>();
-
-    stop_counters(time, resource);
-    std::ostringstream comment;
-    comment << "repeated iterations: " << iterations*2 << '\t';
-    comment << "type: " << abi::__cxa_demangle(typeid(obj).name(),
-                                              0, 0, &status);
-    report_header(__FILE__, comment.str());
-    report_performance(__FILE__, string(), time, resource);
+    {
+      start_counters(time, resource);
+      do_loop<Container>();
+      do_loop<Container>();
+      stop_counters(time, resource);
+      
+      std::ostringstream comment;
+      comment << "repeated iterations: " << iterations*2 << '\t';
+      comment << "type: " << abi::__cxa_demangle(typeid(obj).name(),
+                                                0, 0, &status);
+      report_header(__FILE__, comment.str());
+      report_performance(__FILE__, string(), time, resource);
+    }
   }
 
 // http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html
index 487a8aa..7335254 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -64,7 +64,6 @@ template<typename Container>
        for (int c = 0; c < 10; c++)
          {
            Container m;
-
            for (unsigned i = 0; i < iterations; ++i) 
              m[i] = i;
          }
@@ -73,6 +72,7 @@ template<typename Container>
       {
        // No point allocating all available memory, repeatedly.        
       }
+    return p;
   }
 
 template<typename Container>
@@ -85,7 +85,6 @@ template<typename Container>
     time_counter time;
     resource_counter resource;
 
-    clear_counters(time, resource);
     start_counters(time, resource);
     
     pthread_t  t1, t2, t3, t4;
index d76c252..5240358 100644 (file)
@@ -1,7 +1,7 @@
 // -*- C++ -*-
 // Testing performance utilities for the C++ library testsuite.
 //
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -77,31 +77,44 @@ namespace __gnu_test
 {
   class time_counter
   {
+  private:
     clock_t    elapsed_begin;
     clock_t    elapsed_end;
     tms                tms_begin;
     tms                tms_end;
-    
+
   public:
-    time_counter() 
-    { this->clear(); }
+    explicit
+    time_counter() : elapsed_begin(), elapsed_end(), tms_begin(), tms_end()
+    { }
 
     void 
-    clear()
+    clear() throw()
     {
-      elapsed_begin = 0;
-      elapsed_end = 0;
-      memset(&tms_begin, 0, sizeof(tms));
-      memset(&tms_end, 0, sizeof(tms));
+      elapsed_begin = clock_t();
+      elapsed_end = clock_t();
+      tms_begin = tms();
+      tms_end = tms();
     }
 
     void
     start()
-    { elapsed_begin = times(&tms_begin); }
+    { 
+      this->clear();
+      elapsed_begin = times(&tms_begin); 
+      const clock_t err = clock_t(-1);
+      if (elapsed_begin == err)
+       std::__throw_runtime_error("time_counter::start");
+    }
     
     void
     stop()
-    { elapsed_end = times(&tms_end); }
+    { 
+      elapsed_end = times(&tms_end); 
+      const clock_t err = clock_t(-1);
+      if (elapsed_end == err)
+       std::__throw_runtime_error("time_counter::stop");
+    }
 
     size_t
     real_time() const
@@ -129,7 +142,7 @@ namespace __gnu_test
     { this->clear(); }
     
     void 
-    clear()
+    clear() throw()
     { 
       memset(&rusage_begin, 0, sizeof(rusage_begin)); 
       memset(&rusage_end, 0, sizeof(rusage_end)); 
@@ -168,21 +181,21 @@ namespace __gnu_test
     { return rusage_end.ru_nswap - rusage_begin.ru_nswap; }
   };
 
-  void
+  inline void
   start_counters(time_counter& t, resource_counter& r)
   {
     t.start();
     r.start();
   }
 
-  void
+  inline void
   stop_counters(time_counter& t, resource_counter& r)
   {
     t.stop();
     r.stop();
   }
 
-  void
+  inline void
   clear_counters(time_counter& t, resource_counter& r)
   {
     t.clear();
@@ -202,8 +215,8 @@ namespace __gnu_test
     std::ofstream out(name, std::ios_base::app);
 
 #ifdef __GTHREADS
-    if (__gthread_active_p ())
-      testname.append ("-thread");
+    if (__gthread_active_p())
+      testname.append("-thread");
 #endif
 
     out.setf(std::ios_base::left);
@@ -234,7 +247,7 @@ namespace __gnu_test
 
 #ifdef __GTHREADS
     if (__gthread_active_p ())
-      testname.append ("-thread");
+      testname.append("-thread");
 #endif
 
     out.setf(std::ios_base::left);