Commit f474835b by Benjamin Kosnik Committed by Benjamin Kosnik

testsuite_performance.h (time_counter::start): Clear.


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.

From-SVN: r93834
parent de004e6d
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> 2005-01-17 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/19433 PR libstdc++/19433
......
// 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -92,6 +92,7 @@ template<typename Container> ...@@ -92,6 +92,7 @@ template<typename Container>
do_test(void* p = NULL) do_test(void* p = NULL)
{ {
do_loop<Container>(); do_loop<Container>();
return p;
} }
template<typename Container> template<typename Container>
...@@ -103,10 +104,9 @@ template<typename Container> ...@@ -103,10 +104,9 @@ template<typename Container>
time_counter time; time_counter time;
resource_counter resource; resource_counter resource;
clear_counters(time, resource); {
start_counters(time, resource); start_counters(time, resource);
if (!run_threaded)
if (! run_threaded)
{ {
do_loop<Container>(); do_loop<Container>();
} }
...@@ -123,11 +123,8 @@ template<typename Container> ...@@ -123,11 +123,8 @@ template<typename Container>
pthread_join(t2, NULL); pthread_join(t2, NULL);
pthread_join(t3, NULL); pthread_join(t3, NULL);
pthread_join(t4, NULL); pthread_join(t4, NULL);
#else
return;
#endif #endif
} }
stop_counters(time, resource); stop_counters(time, resource);
std::ostringstream comment; std::ostringstream comment;
...@@ -140,6 +137,7 @@ template<typename Container> ...@@ -140,6 +137,7 @@ template<typename Container>
report_header(__FILE__, comment.str()); report_header(__FILE__, comment.str());
report_performance(__FILE__, string(), time, resource); report_performance(__FILE__, string(), time, resource);
} }
}
// http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html // http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html
// http://gcc.gnu.org/ml/libstdc++/2003-05/msg00231.html // http://gcc.gnu.org/ml/libstdc++/2003-05/msg00231.html
......
...@@ -96,12 +96,10 @@ template<typename Container> ...@@ -96,12 +96,10 @@ template<typename Container>
time_counter time; time_counter time;
resource_counter resource; resource_counter resource;
clear_counters(time, resource); {
start_counters(time, resource); start_counters(time, resource);
do_loop<Container>(); do_loop<Container>();
do_loop<Container>(); do_loop<Container>();
stop_counters(time, resource); stop_counters(time, resource);
std::ostringstream comment; std::ostringstream comment;
...@@ -111,6 +109,7 @@ template<typename Container> ...@@ -111,6 +109,7 @@ template<typename Container>
report_header(__FILE__, comment.str()); report_header(__FILE__, comment.str());
report_performance(__FILE__, string(), time, resource); report_performance(__FILE__, string(), time, resource);
} }
}
// http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html // http://gcc.gnu.org/ml/libstdc++/2001-05/msg00105.html
// http://gcc.gnu.org/ml/libstdc++/2003-05/msg00231.html // http://gcc.gnu.org/ml/libstdc++/2003-05/msg00231.html
......
// 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -64,7 +64,6 @@ template<typename Container> ...@@ -64,7 +64,6 @@ template<typename Container>
for (int c = 0; c < 10; c++) for (int c = 0; c < 10; c++)
{ {
Container m; Container m;
for (unsigned i = 0; i < iterations; ++i) for (unsigned i = 0; i < iterations; ++i)
m[i] = i; m[i] = i;
} }
...@@ -73,6 +72,7 @@ template<typename Container> ...@@ -73,6 +72,7 @@ template<typename Container>
{ {
// No point allocating all available memory, repeatedly. // No point allocating all available memory, repeatedly.
} }
return p;
} }
template<typename Container> template<typename Container>
...@@ -85,7 +85,6 @@ template<typename Container> ...@@ -85,7 +85,6 @@ template<typename Container>
time_counter time; time_counter time;
resource_counter resource; resource_counter resource;
clear_counters(time, resource);
start_counters(time, resource); start_counters(time, resource);
pthread_t t1, t2, t3, t4; pthread_t t1, t2, t3, t4;
......
// -*- C++ -*- // -*- C++ -*-
// Testing performance utilities for the C++ library testsuite. // 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 // 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 // software; you can redistribute it and/or modify it under the
...@@ -77,31 +77,44 @@ namespace __gnu_test ...@@ -77,31 +77,44 @@ namespace __gnu_test
{ {
class time_counter class time_counter
{ {
private:
clock_t elapsed_begin; clock_t elapsed_begin;
clock_t elapsed_end; clock_t elapsed_end;
tms tms_begin; tms tms_begin;
tms tms_end; tms tms_end;
public: public:
time_counter() explicit
{ this->clear(); } time_counter() : elapsed_begin(), elapsed_end(), tms_begin(), tms_end()
{ }
void void
clear() clear() throw()
{ {
elapsed_begin = 0; elapsed_begin = clock_t();
elapsed_end = 0; elapsed_end = clock_t();
memset(&tms_begin, 0, sizeof(tms)); tms_begin = tms();
memset(&tms_end, 0, sizeof(tms)); tms_end = tms();
} }
void void
start() 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 void
stop() 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 size_t
real_time() const real_time() const
...@@ -129,7 +142,7 @@ namespace __gnu_test ...@@ -129,7 +142,7 @@ namespace __gnu_test
{ this->clear(); } { this->clear(); }
void void
clear() clear() throw()
{ {
memset(&rusage_begin, 0, sizeof(rusage_begin)); memset(&rusage_begin, 0, sizeof(rusage_begin));
memset(&rusage_end, 0, sizeof(rusage_end)); memset(&rusage_end, 0, sizeof(rusage_end));
...@@ -168,21 +181,21 @@ namespace __gnu_test ...@@ -168,21 +181,21 @@ namespace __gnu_test
{ return rusage_end.ru_nswap - rusage_begin.ru_nswap; } { return rusage_end.ru_nswap - rusage_begin.ru_nswap; }
}; };
void inline void
start_counters(time_counter& t, resource_counter& r) start_counters(time_counter& t, resource_counter& r)
{ {
t.start(); t.start();
r.start(); r.start();
} }
void inline void
stop_counters(time_counter& t, resource_counter& r) stop_counters(time_counter& t, resource_counter& r)
{ {
t.stop(); t.stop();
r.stop(); r.stop();
} }
void inline void
clear_counters(time_counter& t, resource_counter& r) clear_counters(time_counter& t, resource_counter& r)
{ {
t.clear(); t.clear();
...@@ -202,8 +215,8 @@ namespace __gnu_test ...@@ -202,8 +215,8 @@ namespace __gnu_test
std::ofstream out(name, std::ios_base::app); std::ofstream out(name, std::ios_base::app);
#ifdef __GTHREADS #ifdef __GTHREADS
if (__gthread_active_p ()) if (__gthread_active_p())
testname.append ("-thread"); testname.append("-thread");
#endif #endif
out.setf(std::ios_base::left); out.setf(std::ios_base::left);
...@@ -234,7 +247,7 @@ namespace __gnu_test ...@@ -234,7 +247,7 @@ namespace __gnu_test
#ifdef __GTHREADS #ifdef __GTHREADS
if (__gthread_active_p ()) if (__gthread_active_p ())
testname.append ("-thread"); testname.append("-thread");
#endif #endif
out.setf(std::ios_base::left); out.setf(std::ios_base::left);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment