diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-03-04 23:12:18 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-03-04 23:12:18 +0000 |
commit | 795d8c66a8c43b0b74ac110fa8aad30bf00d894a (patch) | |
tree | b8b0931193d7baeaa5532d5b44efdd9d9aaeaaa7 /performance-tests | |
parent | 3bfd031e933fff369d9a98eea1e312fc69cb0196 (diff) | |
download | ATCD-795d8c66a8c43b0b74ac110fa8aad30bf00d894a.tar.gz |
*** empty log message ***
Diffstat (limited to 'performance-tests')
-rw-r--r-- | performance-tests/Synch-Benchmarks/Perf_Test/Makefile | 1 | ||||
-rw-r--r-- | performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp | 114 | ||||
-rw-r--r-- | performance-tests/Synch-Benchmarks/svc.conf | 11 |
3 files changed, 121 insertions, 5 deletions
diff --git a/performance-tests/Synch-Benchmarks/Perf_Test/Makefile b/performance-tests/Synch-Benchmarks/Perf_Test/Makefile index c11d89a8075..fdf5509cc05 100644 --- a/performance-tests/Synch-Benchmarks/Perf_Test/Makefile +++ b/performance-tests/Synch-Benchmarks/Perf_Test/Makefile @@ -16,6 +16,7 @@ FILES = Benchmark_Performance \ Performance_Test_Options \ Performance_Test \ mutex_test \ + guard_test \ recursive_lock_test \ sema_test \ sysvsema_test \ diff --git a/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp b/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp new file mode 100644 index 00000000000..970a7a945e4 --- /dev/null +++ b/performance-tests/Synch-Benchmarks/Perf_Test/guard_test.cpp @@ -0,0 +1,114 @@ +// $Id$ + +#define ACE_BUILD_SVC_DLL +#include "ace/Synch.h" +#include "Performance_Test_Options.h" +#include "Benchmark_Performance.h" + +ACE_RCSID(Synch_Benchmarks, mutex_test, "$Id$") + +#if defined (ACE_HAS_THREADS) + +class ACE_Svc_Export Guard_Test : public Benchmark_Performance +{ +public: + enum + { // svc.conf options + TEST_ACE_GUARD, // -g + TEST_ACE_THREAD_MUTEX_GUARD // -t + }; + + virtual int svc (void); + virtual int init (int, char *[]); + + void test_guard (void); +#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES) + void test_thread_guard (void); +#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */ +private: + static int guard_type_; + static ACE_Thread_Mutex mutex_; +}; + +int Guard_Test::guard_type_ = Guard_Test::TEST_ACE_GUARD; +ACE_Thread_Mutex Guard_Test::mutex_; + +int +Guard_Test::init (int argc, char *argv[]) +{ + ACE_Get_Opt getopt (argc, argv, "gt"); + int c; + + while ((c = getopt.()) != -1) + { + switch (c) + { +#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES) + case 't': + Guard_Test::guard_type_ = Guard_Test::TEST_ACE_THREAD_MUTEX_GUARD; + break; +#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */ + case 'g': + Guard_Test::guard_type_ = Guard_Test::TEST_ACE_GUARD; + break; + default: + ACE_ERROR_RETURN ((LM_ERROR, + "Invalid option\n"), -1); + } + } +} + +int +Guard_Test::svc (void) +{ + // Extract out the unique thread-specific value to be used as an + // index... + int ni = this->thr_id (); + synch_count = 2; + + switch (Gurad_Test::guard_type_) + { + case Guard_Test::TEST_ACE_GUARD: + this->test_guard (); + break; +#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES) + case Guard_Test::TEST_ACE_THREAD_MUTEX_GUARD: + this->test_thread_guard (); + break; +#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */ + default: + return -1; + } + return 0; +} + +void +Guard_Test::test_guard (void) +{ + while (!this->done ()) + { + ACE_GUARD (ACE_Thread_Mutex, _ace_mon, Guard_Test::mutex_); + + performance_test_options.thr_work_count[ni]++; + buffer++; + } +} + +#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES) +void +Guard_Test::test_thread_guard (void) +{ + while (!this->done ()) + { + ACE_Thread_Mutex_Guard (Guard_Test::mutex_); + + performance_test_options.thr_work_count[ni]++; + buffer++; + } +} +#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */ +ACE_SVC_FACTORY_DECLARE (Guard_Test) +ACE_SVC_FACTORY_DEFINE (Guard_Test) + +// ACE_Service_Object_Type mut (&mutex_test, "Guard_Test"); +#endif /* ACE_HAS_THREADS */ diff --git a/performance-tests/Synch-Benchmarks/svc.conf b/performance-tests/Synch-Benchmarks/svc.conf index c4ef736b2a1..ad484416134 100644 --- a/performance-tests/Synch-Benchmarks/svc.conf +++ b/performance-tests/Synch-Benchmarks/svc.conf @@ -1,15 +1,16 @@ # Dynamically configure all the tests -dynamic Baseline_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Test() "" +#dynamic Baseline_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Test() "" #dynamic Baseline_Base_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Base_Test() "-m 1 -i 30000" -dynamic Baseline_Adaptive_Mutex_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Adaptive_Mutex_Test() "-m 3000 -i 3000000" -dynamic Baseline_Mutex_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Mutex_Test() "-m 3000 -i 3000000" +#dynamic Baseline_Adaptive_Mutex_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Adaptive_Mutex_Test() "-m 3000 -i 3000000" +#dynamic Baseline_Mutex_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Mutex_Test() "-m 3000 -i 3000000" #dynamic Baseline_Recursive_Mutex_Test Service_Object * Base_Test/Base_Test:_make_Baseline_Recursive_Mutex_Test() "-m 3000 -i 30000000" -#dynamic Performance_Test Service_Object * Perf_Test/Perf_Test:_make_Performance_Test() "-s 3" +dynamic Performance_Test Service_Object * Perf_Test/Perf_Test:_make_Performance_Test() "-s 3" +#dynamic Guard_Test Service_Object * Perf_Test/Perf_Test:_make_Guard_Test() "" #dynamic SYSVSema_Test Service_Object * Perf_Test/Perf_Test:_make_SYSVSema_Test() -#dynamic Mutex_Test Service_Object * Perf_Test/Perf_Test:_make_Mutex_Test() +dynamic Mutex_Test Service_Object * Perf_Test/Perf_Test:_make_Mutex_Test() #dynamic Adaptive_Mutex_Test Service_Object * Perf_Test/Perf_Test:_make_Adaptive_Mutex_Test() #dynamic Recursive_Lock_Test Service_Object * Perf_Test/Perf_Test:_make_Recursive_Lock_Test() #dynamic Adaptive_Recursive_Lock_Test Service_Object * Perf_Test/Perf_Test:_make_Adaptive_Recursive_Lock_Test() |