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
This commit is contained in:
parent
de004e6db5
commit
f474835bb9
@ -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
|
||||
|
@ -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;
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user