summaryrefslogtreecommitdiff
path: root/performance-tests/Misc
diff options
context:
space:
mode:
Diffstat (limited to 'performance-tests/Misc')
-rw-r--r--performance-tests/Misc/Makefile577
-rw-r--r--performance-tests/Misc/basic_func.cpp49
-rw-r--r--performance-tests/Misc/basic_func.h77
-rw-r--r--performance-tests/Misc/basic_perf.cpp643
-rw-r--r--performance-tests/Misc/basic_perf.dsp164
-rw-r--r--performance-tests/Misc/childbirth_time.cpp401
-rw-r--r--performance-tests/Misc/childbirth_time.dsp103
-rw-r--r--performance-tests/Misc/context_switch_time.cpp1320
-rw-r--r--performance-tests/Misc/context_switch_time.dsp156
-rw-r--r--performance-tests/Misc/misc.dsw89
-rw-r--r--performance-tests/Misc/preempt.cpp455
-rw-r--r--performance-tests/Misc/test_guard.cpp114
-rw-r--r--performance-tests/Misc/test_mutex.cpp232
-rw-r--r--performance-tests/Misc/test_mutex.dsp103
-rw-r--r--performance-tests/Misc/test_naming.cpp179
-rw-r--r--performance-tests/Misc/test_naming.dsp103
-rw-r--r--performance-tests/Misc/test_singleton.cpp178
-rw-r--r--performance-tests/Misc/test_singleton.dsp103
-rw-r--r--performance-tests/Misc/test_singleton.h24
19 files changed, 0 insertions, 5070 deletions
diff --git a/performance-tests/Misc/Makefile b/performance-tests/Misc/Makefile
deleted file mode 100644
index f8fb35c632e..00000000000
--- a/performance-tests/Misc/Makefile
+++ /dev/null
@@ -1,577 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for tests of the miscellaneous ACE performance tests
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = basic_perf \
- childbirth_time \
- context_switch_time \
- preempt \
- test_mutex \
- test_singleton
-#### See below for test_naming.
-
-# Only build static library for optimum run-time speed.
-static_libs_only = 1
-LIB = libPerf.a
-FILES = basic_func
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-LDLIBS = -lPerf
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-# See comment above about only building libPerf.a for max performance.
-BUILD = $(VLIB) $(VBIN)
-
-BIN2 = test_naming
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
- BIN += $(BIN2)
-endif # ! Other
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-# For make depend.
-PSRC = $(addsuffix .cpp, $(BIN))
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/basic_func.o .obj/basic_func.o .obj/basic_func.o .obj/basic_func.o: basic_func.cpp basic_func.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i
-.obj/basic_perf.o .obj/basic_perf.o .obj/basic_perf.o .obj/basic_perf.o: basic_perf.cpp basic_func.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-.obj/childbirth_time.o .obj/childbirth_time.o .obj/childbirth_time.o .obj/childbirth_time.o: childbirth_time.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Process.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Process.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i
-.obj/context_switch_time.o .obj/context_switch_time.o .obj/context_switch_time.o .obj/context_switch_time.o: context_switch_time.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i \
- $(ACE_ROOT)/ace/Stats.h \
- $(ACE_ROOT)/ace/Stats.i \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-.obj/preempt.o .obj/preempt.o .obj/preempt.o .obj/preempt.o: preempt.cpp \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(ACE_ROOT)/ace/Strategies_T.cpp \
- $(ACE_ROOT)/ace/Service_Repository.h \
- $(ACE_ROOT)/ace/Service_Types.h \
- $(ACE_ROOT)/ace/Service_Types.i \
- $(ACE_ROOT)/ace/Service_Repository.i \
- $(ACE_ROOT)/ace/WFMO_Reactor.h \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.i \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-.obj/test_mutex.o .obj/test_mutex.o .obj/test_mutex.o .obj/test_mutex.o: test_mutex.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i
-.obj/test_singleton.o .obj/test_singleton.o .obj/test_singleton.o .obj/test_singleton.o: test_singleton.cpp \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- test_singleton.h
-.obj/test_naming.o .obj/test_naming.o .obj/test_naming.o .obj/test_naming.o: test_naming.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/inc_user_config.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Naming_Context.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/performance-tests/Misc/basic_func.cpp b/performance-tests/Misc/basic_func.cpp
deleted file mode 100644
index 84943e0b22a..00000000000
--- a/performance-tests/Misc/basic_func.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#include "basic_func.h"
-
-ACE_RCSID(Misc, basic_func, "$Id$")
-
-int A, B, C, D, E, F;
-
-void
-func ()
-{
- DO_SOMETHING
-}
-
-
-void
-Foo::func ()
-{
- DO_SOMETHING
-}
-
-
-Foo_v::~Foo_v ()
-{
-}
-
-
-void
-Foo_v::func ()
-{
- DO_SOMETHING
-}
-
-
-void
-Foo_v::v_func ()
-{
- DO_SOMETHING
-}
-
-
-void
-Foo_d_v::v_func ()
-{
- DO_SOMETHING
-}
-
-
-// EOF
diff --git a/performance-tests/Misc/basic_func.h b/performance-tests/Misc/basic_func.h
deleted file mode 100644
index dcb70bae5da..00000000000
--- a/performance-tests/Misc/basic_func.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// basic_func.h
-//
-// = DESCRIPTION
-// For use with basic_perf.cpp.
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
-
-#ifndef BASIC_FUNC_H
-#define BASIC_FUNC_H
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-extern int A,B,C,D,E,F;
-
-// If your compiler optimizes away Empty_Iteration_Test::run (), then
-// #defining ACE_HAS_OPTIMIZED_NULL_FUNCTIONS may help produce more
-// reasonable numbers.
-#if defined (_MSC_VER)
- // MSVC 5.0 needs it . . .
-# define ACE_HAS_OPTIMIZED_NULL_FUNCTIONS
-#endif /* _MSC_VER */
-
-#if defined (ACE_HAS_OPTIMIZED_NULL_FUNCTIONS)
-# define EXPR(R,A,B,C,D) (R=(A*B + C*D))
-# define DO_SOMETHING EXPR(A,B,EXPR(F,A,E,C,B),EXPR(B,F,A,D,E),EXPR(E,B,F,A,C));
-#else /* ACE_HAS_OPTIMIZED_NULL_FUNCTIONS */
-# define DO_SOMETHING
-#endif /* ACE_HAS_OPTIMIZED_NULL_FUNCTIONS */
-
-
-// An external (global) function.
-void func ();
-
-
-// A class with no virtual functions.
-class Foo
-{
- public:
- void inline_func () { DO_SOMETHING }
- void func ();
-};
-
-
-// A class with a virtual function.
-class Foo_v
-{
- public:
- virtual ~Foo_v ();
- void inline_func () { DO_SOMETHING }
- void func ();
- virtual void v_func ();
-};
-
-
-// A derived class.
-class Foo_d_v : public Foo_v
-{
- public:
- virtual void v_func ();
-};
-
-#endif /* BASIC_FUNC_H */
diff --git a/performance-tests/Misc/basic_perf.cpp b/performance-tests/Misc/basic_perf.cpp
deleted file mode 100644
index e7048bce18d..00000000000
--- a/performance-tests/Misc/basic_perf.cpp
+++ /dev/null
@@ -1,643 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// basic_perf.cpp
-//
-// = DESCRIPTION
-// Times various simple operations.
-//
-// With Sun C++, use -O2: make CFLAGS="-mt -O2" BIN=basic_perf
-// -fast seems to produce slower times.
-//
-// = AUTHOR
-// David Levine
-//
-// ============================================================================
-
-#include "basic_func.h"
-#include "ace/High_Res_Timer.h"
-#include "ace/Get_Opt.h"
-#include "ace/OS.h"
-
-ACE_RCSID(Misc, basic_perf, "$Id$")
-
-static const char usage [] = "[-? |\n"
- " [-i <iterations> [1000000]]";
-
-// These are global. They appear to bust the CPU cache, on an Ultra 2
-// w/Sun C++ 4.2.
-static u_int iterations = 1000000;
-Foo foo;
-Foo_v foo_v;
-
-inline
-void
-inline_func ()
-{
- DO_SOMETHING
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function per_iteration
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// Given an elapsed time in nanoseconds, returns the time per iteration
-// in microseconds.
-static
-inline
-double
-per_iteration (const ACE_hrtime_t elapsed /* nanoseconds */)
-{
- double ms_per_iteration = (double) ACE_CU64_TO_CU32 (elapsed) / 1000.0 /
- (double) iterations;
-
- // Don't print out "-0.000" or "-0.001" . . .
- return -0.002 < ms_per_iteration && ms_per_iteration < 0.0
- ? 0.0
- : ms_per_iteration;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Basic_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Basic_Test
-{
-public:
- Basic_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time);
- virtual ~Basic_Test (void);
-
- virtual void run (void) = 0;
-
- double iteration_time (void);
-
- void print_iteration_time (const char *message);
-
-protected:
- ACE_hrtime_t elapsed_time_;
-
- void start_timing (void)
- {
- timer_.reset ();
- timer_.start ();
- }
-
- void stop_timing (void)
- {
- timer_.stop ();
- timer_.elapsed_time (elapsed_time_);
- }
-
-private:
- ACE_High_Res_Timer &timer_;
- ACE_hrtime_t empty_iteration_time_;
-
- // Require the timer reference.
- Basic_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Basic_Test (const Basic_Test &);
- Basic_Test &operator= (const Basic_Test &);
-};
-
-Basic_Test::Basic_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : elapsed_time_ (0),
- timer_ (timer),
- empty_iteration_time_ (empty_iteration_time)
-{
-}
-
-Basic_Test::~Basic_Test (void)
-{
-}
-
-double
-Basic_Test::iteration_time (void)
-{
- return per_iteration (elapsed_time_ > empty_iteration_time_ ?
- elapsed_time_ - empty_iteration_time_ :
- ACE_static_cast (ACE_hrtime_t, 0));
-}
-
-void
-Basic_Test::print_iteration_time (const char *message)
-{
- ACE_DEBUG ((LM_INFO, " %-41s %8.3f\n",
- message,
- this->iteration_time ()));
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Empty_Iteration_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Empty_Iteration_Test : public Basic_Test
-{
-public:
- Empty_Iteration_Test (ACE_High_Res_Timer &timer) : Basic_Test (timer, 0) {}
- virtual ~Empty_Iteration_Test (void) {};
-
- virtual void run (void);
-
- ACE_hrtime_t empty_iteration_time (void) const
- {
- return elapsed_time_;
- }
-
-private:
- // Require the timer reference.
- Empty_Iteration_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Empty_Iteration_Test (const Empty_Iteration_Test &);
- Empty_Iteration_Test &operator= (const Empty_Iteration_Test &);
-};
-
-void
-Empty_Iteration_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- {
- DO_SOMETHING
- }
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Inline_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Inline_Call_Test : public Basic_Test
-{
-public:
- Inline_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Inline_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Inline_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Inline_Call_Test (const Inline_Call_Test &);
- Inline_Call_Test &operator= (const Inline_Call_Test &);
-};
-
-void
-Inline_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- inline_func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Noninline_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Noninline_Call_Test : public Basic_Test
-{
-public:
- Noninline_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Noninline_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Noninline_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Noninline_Call_Test (const Noninline_Call_Test &);
- Noninline_Call_Test &operator= (const Noninline_Call_Test &);
-};
-
-void
-Noninline_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Inline_Member_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Inline_Member_Call_Test : public Basic_Test
-{
-public:
- Inline_Member_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Inline_Member_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Inline_Member_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Inline_Member_Call_Test (const Inline_Member_Call_Test &);
- Inline_Member_Call_Test &operator= (const Inline_Member_Call_Test &);
-};
-
-void
-Inline_Member_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- foo.inline_func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Noninline_Member_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Noninline_Member_Call_Test : public Basic_Test
-{
-public:
- Noninline_Member_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Noninline_Member_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Noninline_Member_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Noninline_Member_Call_Test (const Noninline_Member_Call_Test &);
- Noninline_Member_Call_Test &operator= (const Noninline_Member_Call_Test &);
-};
-
-void
-Noninline_Member_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- foo.func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Inline_Member_With_Virtual_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Inline_Member_With_Virtual_Call_Test : public Basic_Test
-{
-public:
- Inline_Member_With_Virtual_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Inline_Member_With_Virtual_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Inline_Member_With_Virtual_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Inline_Member_With_Virtual_Call_Test (
- const Inline_Member_With_Virtual_Call_Test &);
- Inline_Member_With_Virtual_Call_Test &operator= (
- const Inline_Member_With_Virtual_Call_Test &);
-};
-
-void
-Inline_Member_With_Virtual_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- foo_v.inline_func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Noninline_Member_With_Virtual_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Noninline_Member_With_Virtual_Call_Test : public Basic_Test
-{
-public:
- Noninline_Member_With_Virtual_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Noninline_Member_With_Virtual_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Noninline_Member_With_Virtual_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Noninline_Member_With_Virtual_Call_Test
- (const Noninline_Member_With_Virtual_Call_Test &);
- Noninline_Member_With_Virtual_Call_Test &operator=
- (const Noninline_Member_With_Virtual_Call_Test &);
-};
-
-void
-Noninline_Member_With_Virtual_Call_Test::run (void)
-{
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- foo_v.func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Virtual_Member_Optimizable_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Virtual_Member_Optimizable_Call_Test : public Basic_Test
-{
-public:
- Virtual_Member_Optimizable_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Virtual_Member_Optimizable_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Virtual_Member_Optimizable_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Virtual_Member_Optimizable_Call_Test (
- const Virtual_Member_Optimizable_Call_Test &);
- Virtual_Member_Optimizable_Call_Test &operator= (
- const Virtual_Member_Optimizable_Call_Test &);
-};
-
-void
-Virtual_Member_Optimizable_Call_Test::run (void)
-{
- Foo_v &fv_o = foo_v;
-
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- fv_o.v_func ();
-
- this->stop_timing ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Virtual_Member_Call_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-class Virtual_Member_Call_Test : public Basic_Test
-{
-public:
- Virtual_Member_Call_Test (ACE_High_Res_Timer &timer,
- ACE_hrtime_t empty_iteration_time)
- : Basic_Test (timer, empty_iteration_time) {}
- virtual ~Virtual_Member_Call_Test (void) {};
-
- virtual void run (void);
-
-private:
- // Require the timer reference.
- Virtual_Member_Call_Test (void);
-
- // Force construction of independent instances by prohibiting copying.
- Virtual_Member_Call_Test (const Virtual_Member_Call_Test &);
- Virtual_Member_Call_Test &operator= (const Virtual_Member_Call_Test &);
-};
-
-void
-Virtual_Member_Call_Test::run (void)
-{
- Foo_v *fv;
-
- if (iterations < 2)
- fv = new Foo_v;
- else
- fv = new Foo_d_v;
-
- this->start_timing ();
-
- for (u_int i = 0; i < iterations; ++i)
- fv->v_func ();
-
- this->stop_timing ();
-
- delete fv;
- fv = 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function get_options
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-static
-unsigned int
-get_options (int argc, char *argv [])
-{
- ACE_Get_Opt get_opt (argc, argv, "i:?");
- int opt;
-
- while ((opt = get_opt ()) != EOF)
- {
- switch (opt)
- {
- case 'i':
- {
- int temp = ACE_OS::atoi (get_opt.optarg);
- if (temp > 0)
- iterations = (u_int) temp;
- else
- {
- ACE_DEBUG ((LM_ERROR, "%s: number of iterations must be > 0\n",
- argv [0]));
- return 1;
- }
- break;
- }
- case '?':
- ACE_DEBUG ((LM_INFO, "usage: %s %s\n", argv [0], usage));
- ACE_OS::exit (0);
- break;
- default:
- ACE_DEBUG ((LM_ERROR, "%s: unknown arg, %c\n", argv [0],
- (char) opt));
- ACE_DEBUG ((LM_ERROR, "usage: %s %s\n", argv [0], usage));
- return 1;
- }
- }
-
- switch (argc - get_opt.optind)
- {
- case 0:
- // OK
- break;
- default:
- ACE_DEBUG ((LM_ERROR, "%s: too many arguments\n", argv [0]));
- ACE_DEBUG ((LM_ERROR, "usage: %s %s\n", argv [0], usage));
- return 1;
- }
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function main
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-int
-main (int argc, char *argv[])
-{
- if (get_options (argc, argv))
- ACE_OS::exit (-1);
-
- struct utsname name;
-
- if (ACE_OS::uname (&name) != -1)
- ACE_DEBUG ((LM_INFO, "%s (%s), %s %s at %T\n",
- name.nodename, name.machine, name.sysname, name.release));
-
- ACE_DEBUG ((LM_INFO, "%u iterations\n", iterations));
-
-
- // Use one timer for all the tests. No particular reason why.
- ACE_High_Res_Timer timer;
-
- // Calculate the time for an "empty iteration", and subtract it
- // from each test time.
- ACE_hrtime_t iteration_time;
-
- Empty_Iteration_Test empty_iteration_test (timer);
- empty_iteration_test.run ();
- ACE_DEBUG ((LM_INFO, "An empty iteration costs %8.3f microseconds.\n\n",
- empty_iteration_test.iteration_time ()));
- iteration_time = empty_iteration_test.empty_iteration_time ();
-
-
- // Run the real tests . . .
- Inline_Call_Test inline_call_test (timer, iteration_time);
- inline_call_test.run ();
-
- Noninline_Call_Test noninline_call_test (timer, iteration_time);
- noninline_call_test.run ();
-
- Inline_Member_Call_Test inline_member_call_test (timer, iteration_time);
- inline_member_call_test.run ();
-
- Noninline_Member_Call_Test noninline_member_call_test (
- timer, iteration_time);
- noninline_member_call_test.run ();
-
- Inline_Member_With_Virtual_Call_Test
- inline_member_with_virtual_call_test (timer, iteration_time);
- inline_member_with_virtual_call_test.run ();
-
- Noninline_Member_With_Virtual_Call_Test
- noninline_member_with_virtual_call_test (timer, iteration_time);
- noninline_member_with_virtual_call_test.run ();
-
- Virtual_Member_Optimizable_Call_Test
- virtual_member_optimizable_call_test (timer, iteration_time);
- virtual_member_optimizable_call_test.run ();
-
- Virtual_Member_Call_Test virtual_member_call_test (timer, iteration_time);
- virtual_member_call_test.run ();
-
-
- // Print results . . .
- ACE_DEBUG ((LM_INFO, "operation "
- "time, microseconds\n"));
- ACE_DEBUG ((LM_INFO, "========= "
- "=================="));
-
- ACE_DEBUG ((LM_INFO, "\nglobal function calls:\n"));
- inline_call_test.print_iteration_time ("inline function call");
- noninline_call_test.print_iteration_time ("non-inline function call");
-
- ACE_DEBUG ((LM_INFO, "\nmember function calls:\n"));
- inline_member_call_test.print_iteration_time (
- "inline member function call");
- noninline_member_call_test.print_iteration_time (
- "non-inline member function call");
-
- ACE_DEBUG ((LM_INFO, "\nmember function calls, class has a virtual "
- "function:\n"));
- inline_member_with_virtual_call_test.print_iteration_time (
- "inline member function with virtual call");
- noninline_member_with_virtual_call_test.print_iteration_time (
- "non-inline member function w/virtual call");
-
- ACE_DEBUG ((LM_INFO, "\nvirtual member function calls:\n"));
- virtual_member_optimizable_call_test.print_iteration_time (
- "virtual member function call, optimizable");
- virtual_member_call_test.print_iteration_time (
- "virtual member function call");
-
- return 0;
-}
-
-
-// EOF
diff --git a/performance-tests/Misc/basic_perf.dsp b/performance-tests/Misc/basic_perf.dsp
deleted file mode 100644
index 2d5c55f56c5..00000000000
--- a/performance-tests/Misc/basic_perf.dsp
+++ /dev/null
@@ -1,164 +0,0 @@
-# Microsoft Developer Studio Project File - Name="basic_perf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=basic_perf - Win32 static Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "basic_perf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "basic_perf.mak" CFG="basic_perf - Win32 static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "basic_perf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "basic_perf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "basic_perf - Win32 static Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "basic_perf - Win32 static Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "basic_perf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\basic_perf\Release"
-# PROP BASE Intermediate_Dir ".\basic_perf\Release"
-# PROP BASE Target_Dir ".\basic_perf"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\basic_perf"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "basic_perf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\basic_perf\Debug"
-# PROP BASE Intermediate_Dir ".\basic_perf\Debug"
-# PROP BASE Target_Dir ".\basic_perf"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\basic_perf"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "basic_perf - Win32 static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "basic_perf\static Debug"
-# PROP BASE Intermediate_Dir "basic_perf\static Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir "basic_perf"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "static_Debug"
-# PROP Intermediate_Dir "static_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "basic_perf"
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D ACE_HAS_DLL=0 /D ACE_NO_INLINE /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-# ADD LINK32 acesd.lib advapi32.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "basic_perf - Win32 static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "basic_perf\static Release"
-# PROP BASE Intermediate_Dir "basic_perf\static Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir "basic_perf"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "static_Release"
-# PROP Intermediate_Dir "static_Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "basic_perf"
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D ACE_HAS_DLL=0 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-# ADD LINK32 aces.lib advapi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "basic_perf - Win32 Release"
-# Name "basic_perf - Win32 Debug"
-# Name "basic_perf - Win32 static Debug"
-# Name "basic_perf - Win32 static Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\basic_func.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\basic_perf.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\basic_func.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/childbirth_time.cpp b/performance-tests/Misc/childbirth_time.cpp
deleted file mode 100644
index 69a93da21b7..00000000000
--- a/performance-tests/Misc/childbirth_time.cpp
+++ /dev/null
@@ -1,401 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// (none)
-//
-// = FILENAME
-// childbirth_time.cpp
-//
-// = DESCRIPTION
-// This program is used to measure various child-creation mechanisms
-// on various platforms. By default, the program measure the time
-// to 'fork' a new process using ACE_Process.spawn (). Other tests
-// are possible as described below. James Hu provides the idea to
-// batch measuring threads creation.
-//
-// Usage: childbirth_time [-n ###] [-l ###] [-p|-f|-t|-a|-m|-x] [-h] [-e]
-//
-// -n ###: Specify number of iteration in tens. If this
-// option is not specified, the default is
-// MULTIPLY_FACTOR * (100 iterations,) which is
-// equivalent to -n 10.
-//
-// -l ###: Specify MULTIPLY_FACTOR. Default is 10.
-//
-// *-p: Measure the performance of forking a child process
-// and exec an "empty" program. This test uses
-// ACE_Process.spawn (). (Default)
-//
-// -f: Measure the performance of native "fork" function
-// call. Notice that there is no equivalent NT
-// function calls and this option is only available
-// on UN*X platform.
-//
-// -t: Measure the performance of native thread creation
-// mechanisms. On Solaris, this is thr_create ().
-// On NT, this is CreateThread (). Currently, only
-// these two platforms are implemented.
-//
-// -m: Measure the performance of Thread_Manager::spawn_n
-// method.
-//
-// -x: Test the baseline performance of ACE_Thread_Mutex.
-// This really doesn't belong here
-//
-// -a: Measure the performance of thread creation using
-// ACE_OS::thr_create ().
-//
-// -h: Use High Resolution Timer if supported by platform.
-//
-// -e: Exec a program after fork (). This option has no
-// effect on NT.
-//
-// = CREATION DATE
-// June 29, 1997
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-// Process Creation profiling
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Process.h"
-#include "ace/Profile_Timer.h"
-#include "ace/Thread_Manager.h"
-
-ACE_RCSID(Misc, childbirth_time, "$Id$")
-
-#define ACE_STOP_SIGN ACE_OS::sleep (0)
-
-#define MAX_NO_ITERATION 10000
-#if defined (ACE_WIN32)
-#define SUBPROGRAM "date.exe"
-#else
-#define SUBPROGRAM "date"
-#endif
-
-size_t MULTIPLY_FACTOR = 10;
-typedef double (*Profiler)(size_t);
-static int do_exec_after_fork = 0;
-
-static void *
-empty (void*) // do nothing thread function
-{
- return 0;
-}
-
-static double
-prof_ace_process (size_t iteration)
-{
- if (iteration != 0)
- {
- ACE_Process_Options popt;
- ACE_Process aProcess;
-
- popt.command_line (SUBPROGRAM);
-
- iteration *= MULTIPLY_FACTOR;
-
- if (do_exec_after_fork == 0)
- popt.creation_flags (ACE_Process_Options::NO_EXEC);
-
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
- pid_t result;
-
- for (size_t c = 0; c < iteration; c++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
- result = aProcess.spawn (popt);
- ptimer.stop ();
-
- if (result == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "process.spawn"), -1);
- else if (do_exec_after_fork == 0 && result == 0)
- ACE_OS::exit (0) ;
- else
- {
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- }
-
- return time / iteration;
- }
- else
- return -1.0;
-}
-
-static double
-prof_fork (size_t iteration)
-{
-#if !defined (ACE_LACKS_EXEC)
- if (iteration != 0)
- {
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
-
- iteration *= MULTIPLY_FACTOR;
-
- for (size_t i = 0; i < iteration; i++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
- switch (ACE_OS::fork ())
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "process.spawn"), -1);
- /* NOTREACHED */
- case 0:
- exit (0);
- /* NOTREACHED */
- break;
- default:
- ptimer.stop ();
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- }
- return time / iteration;
- }
- else
- return -1.0;
-#else
- ACE_UNUSED_ARG (iteration);
- ACE_ERROR_RETURN ((LM_ERROR, "fork () is not supported on this platform."), -1);
-#endif
-}
-
-static double
-prof_native_thread (size_t iteration)
-{
-#if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_WTHREADS) || defined (ACE_HAS_STHREADS))
- if (iteration != 0)
- {
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
-
- for (size_t i = 0; i < iteration; i++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
- for (size_t j = 0; j < MULTIPLY_FACTOR; j++)
- {
-#if defined (ACE_HAS_WTHREADS)
- if (::CreateThread (NULL,
- 0,
- LPTHREAD_START_ROUTINE (empty),
- 0,
- CREATE_SUSPENDED,
- 0) == NULL)
-#elif defined (ACE_HAS_STHREADS)
- if (::thr_create (NULL,
- 0,
- empty,
- 0,
- THR_SUSPENDED,
- NULL) != 0)
-#endif
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CreateThread"), -1);
- }
- ptimer.stop ();
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- iteration *= MULTIPLY_FACTOR;
- return time / iteration;
- }
- else
- return -1.0;
-#else
- ACE_UNUSED_ARG (iteration);
- ACE_ERROR_RETURN ((LM_ERROR, "Testing of native threads is not supported on this platform.\n"), -1);
-#endif
-}
-
-static double
-prof_ace_os_thread (size_t iteration)
-{
-#if defined (ACE_HAS_THREADS)
- if (iteration != 0)
- {
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
-
- for (size_t i = 0; i < iteration; i++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
-
- for (size_t j = 0; j < MULTIPLY_FACTOR; j++)
- if (ACE_OS::thr_create ((ACE_THR_FUNC) empty,
- 0,
- THR_SUSPENDED,
- NULL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CreateThread"), -1);
-
- ptimer.stop ();
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- iteration *= MULTIPLY_FACTOR;
- return time / iteration;
- }
- else
- return -1.0;
-#else
- ACE_UNUSED_ARG (iteration);
- ACE_ERROR_RETURN ((LM_ERROR, "Threads are not supported on this platform.\n"), -1);
-#endif
-}
-
-static double
-prof_tm_thread (size_t iteration)
-{
-#if defined (ACE_HAS_THREADS)
- if (iteration != 0)
- {
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
-
- for (size_t i = 0; i < iteration; i++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
-
- if (ACE_Thread_Manager::instance ()->spawn_n (MULTIPLY_FACTOR,
- (ACE_THR_FUNC) empty,
- 0,
- THR_SUSPENDED) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CreateThread"), -1);
-
- ptimer.stop ();
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- iteration *= MULTIPLY_FACTOR;
- return time / iteration;
- }
- else
- return -1.0;
-#else
- ACE_UNUSED_ARG (iteration);
- ACE_ERROR_RETURN ((LM_ERROR, "Threads are not supported on this platform."), -1);
-#endif
-}
-
-static double
-prof_mutex_base (size_t iteration)
-{
-#if defined (ACE_HAS_THREADS)
- ACE_Thread_Mutex plain;
- if (iteration != 0)
- {
- ACE_Profile_Timer ptimer;
- ACE_Profile_Timer::ACE_Elapsed_Time et;
- double time = 0;
-
- for (size_t i = 0; i < iteration; i++)
- {
- ACE_STOP_SIGN;
- ptimer.start ();
-
- for (size_t j=0; j < MULTIPLY_FACTOR; j++)
- {
- plain.acquire ();
- plain.release ();
- }
-
- ptimer.stop ();
- ptimer.elapsed_time (et);
- time += et.real_time;
- }
- iteration *= MULTIPLY_FACTOR;
- return time / iteration;
- }
- else
- return -1.0;
-#else
- ACE_UNUSED_ARG (iteration);
- ACE_ERROR_RETURN ((LM_ERROR, "Threads are not supported on this platform."), -1);
-#endif
-}
-
-int
-main (int argc, char* argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "n:l:pftahmxe");
- int c;
- size_t iteration = 10;
- Profiler profiler = 0;
- const char *profile_name = 0 ;
-
- while ((c=get_opt ()) != -1)
- {
- switch (c)
- {
- case 'n':
- iteration = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'l':
- MULTIPLY_FACTOR = ACE_static_cast (size_t,
- ACE_OS::atoi (get_opt.optarg));
- break;
- case 'p': // test ACE_Process.spawn ()
- profiler = prof_ace_process;
- profile_name = "ACE_Process.spawn ()";
- break;
- case 'f': // test fork ()
- profiler = prof_fork;
- profile_name = "fork ()";
- break;
- case 't': // test native thread creation
- profiler = prof_native_thread;
- profile_name = "native threads";
- break;
- case 'a': // test ACE_OS::thr_create
- profiler = prof_ace_os_thread;
- profile_name = "ACE_OS::thr_create ()";
- break;
- case 'm':
- profiler = prof_tm_thread;
- profile_name = "ACE_Thread_Manager::spawn_n ()";
- break;
- case 'x':
- profiler = prof_mutex_base;
- profile_name = "ACE_Thread_Mutex Baseline";
- break;
- case 'h': // use high resolution timer
- ACE_High_Res_Timer::get_env_global_scale_factor ();
- break;
- case 'e':
- do_exec_after_fork = 1;
- break;
- default:
- break;
- }
- }
-
- if (profiler == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "Usage: childbirth_time {-p|-f|-t|-a|-m|-x} [-n ###] [-L ###] [-h] [-e]\n"), 1);
- else
- {
- double time = profiler (iteration);
- if (time > 0)
- ACE_DEBUG ((LM_DEBUG,
- "Average performance of %d iterations of %s: %.0f usec\n",
- iteration * MULTIPLY_FACTOR, profile_name, time * 1e6));
- }
- return 0;
-}
diff --git a/performance-tests/Misc/childbirth_time.dsp b/performance-tests/Misc/childbirth_time.dsp
deleted file mode 100644
index 0fd8ba78615..00000000000
--- a/performance-tests/Misc/childbirth_time.dsp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Microsoft Developer Studio Project File - Name="childbirth_time" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=childbirth_time - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "childbirth_time.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "childbirth_time.mak" CFG="childbirth_time - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "childbirth_time - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "childbirth_time - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "childbirth_time - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\childbirth_time\Release"
-# PROP BASE Intermediate_Dir ".\childbirth_time\Release"
-# PROP BASE Target_Dir ".\childbirth_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\childbirth_time"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "childbirth_time - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\childbirth_time\Debug"
-# PROP BASE Intermediate_Dir ".\childbirth_time\Debug"
-# PROP BASE Target_Dir ".\childbirth_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\childbirth_time"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "childbirth_time - Win32 Release"
-# Name "childbirth_time - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\childbirth_time.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/context_switch_time.cpp b/performance-tests/Misc/context_switch_time.cpp
deleted file mode 100644
index 0178b04c427..00000000000
--- a/performance-tests/Misc/context_switch_time.cpp
+++ /dev/null
@@ -1,1320 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// (none)
-//
-// = FILENAME
-// context_switch_time.cpp
-//
-// = DESCRIPTION
-// Program that calculates context switch time between threads.
-// The Suspend-Resume test is based on the Task Context Switching
-// measurement approach described in:
-// Darren Cathey<br>
-// "RTOS Benchmarking -- All Things Considered . . ."<br>
-// <a href="http://www.realtime-info.be"><em>Real-Time Magazine</em></a>,
-// Second Quarter 1993,
-// <em>reprinted by <a href="http://www.wrs.com/artreqfm.html">Wind River
-// Systems</a></em><p>
-// which in turn is based on Superconducting Super Collider (SSC)
-// Laboratory Ping Suspend/Resume Task and Suspend/Resume Task benchmarks.
-// It measures two different times:
-// 1) The time to resume a blocked high priority task, which does
-// nothing other than block immediately. A lower priority task
-// resumes the high priority task, so the elapsed time includes
-// two context switches, one task suspend, and one task resume.
-// 2) The time to suspend and resume a low priority task that does
-// nothing. There is no context switching. This time is subtracted
-// from the one described in 1) above, and the result is divided by
-// two to yield the context switch time.
-//
-// Notes:
-// On Solaris 2.5.1, it appears that the lowest context switching times,
-// at least on a single-CPU machine, are obtained _without_ creating new
-// LWPs for new threads (THR_NEW_LWP). The -n option enables the use of
-// THR_NEW_LWP for testing.
-//
-// = CREATION DATE
-// 17 January 1997
-//
-// = AUTHOR
-// David L. Levine
-//
-// ============================================================================
-
-static const char usage [] = "[-? |\n"
- " [-c <repeat count, 0 means forever>]\n"
- " [-n to spawn a new LWP with each thread\n"
- "[<iterations>]]";
-
-#include "ace/Task.h"
-#include "ace/Sched_Params.h"
-#include "ace/Stats.h"
-#include "ace/High_Res_Timer.h"
-#include "ace/Get_Opt.h"
-#include "ace/Synch.h"
-
-ACE_RCSID(Misc, context_switch_time, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-#if !defined (DEBUG)
-# define DEBUG 0
-#endif /* DEBUG */
-
-static const u_int LOW_PRIORITY = ACE_THR_PRI_FIFO_DEF;
-static u_int HIGH_PRIORITY;
-
-// Global test configuration parameters.
-static ACE_UINT32 count = 1;
-static ACE_UINT32 num_iterations = 1000;
-static ACE_UINT32 new_lwp = 0;
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Low_Priority_Null_Task
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Low_Priority_Null_Task : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- Low_Priority_Null_Task ();
- virtual ~Low_Priority_Null_Task ();
-
- virtual int svc ();
-
- // Called by other task: it returns when this task is ready to
- // continue.
- void ready () { initialized_.acquire (); }
-
- void done ();
-
- ACE_hthread_t thread_id () const { return thread_id_; }
-private:
- ACE_hthread_t thread_id_;
- ACE_Semaphore initialized_; // Blocks until thread_id_ is assigned.
- ACE_Semaphore blocked_semaphore_;
-
- // Force proper construction of independent instances.
- Low_Priority_Null_Task (const Low_Priority_Null_Task &);
- Low_Priority_Null_Task &operator= (const Low_Priority_Null_Task &);
-};
-
-inline
-Low_Priority_Null_Task::Low_Priority_Null_Task() :
- ACE_Task<ACE_MT_SYNCH> (ACE_Thread_Manager::instance ()),
- initialized_ (0), // initialize to locked, then unlock when ready
- blocked_semaphore_ (0)
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Low_Priority_Null_Task ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, LOW_PRIORITY))
- ACE_OS::perror ("activate");
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Low_Priority_Null_Task ctor, activated\n"));
-#endif /* DEBUG */
-}
-
-Low_Priority_Null_Task::~Low_Priority_Null_Task()
-{
-}
-
-int
-Low_Priority_Null_Task::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Low_Priority_Null_Task::svc (), entering"));
-#endif /* DEBUG */
-
- ACE_Thread_Manager::instance ()->thr_self (thread_id_);
- initialized_.release ();
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u\n", thread_id_));
-#endif /* DEBUG */
-
- // This task must never actually execute, so just have it block
- // on a semaphore forever . . .
- blocked_semaphore_.acquire ();
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Low_Priority_Task::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-void
-Low_Priority_Null_Task::done ()
-{
- blocked_semaphore_.release ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Suspend_Resume_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Suspend_Resume_Test : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- Suspend_Resume_Test (const ACE_UINT32 iterations);
- virtual ~Suspend_Resume_Test ();
-
- virtual int svc ();
-
- ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
-private:
- const ACE_UINT32 iterations_;
-
- Low_Priority_Null_Task low_;
-
- ACE_High_Res_Timer timer_;
-
- ACE_hrtime_t elapsed_time_;
-
- // Force proper construction of independent instances.
- Suspend_Resume_Test ();
- Suspend_Resume_Test (const Suspend_Resume_Test &);
- Suspend_Resume_Test &operator= (const Suspend_Resume_Test &);
-};
-
-Suspend_Resume_Test::Suspend_Resume_Test (const ACE_UINT32 iterations) :
- ACE_Task<ACE_MT_SYNCH> (),
- iterations_ (iterations),
- low_ (),
- timer_ ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Suspend_Resume_Test ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, HIGH_PRIORITY))
- ACE_OS::perror ("activate");
-}
-
-Suspend_Resume_Test::~Suspend_Resume_Test()
-{
-}
-
-int
-Suspend_Resume_Test::svc ()
-{
-#if DEBUG > 0
- ACE_hthread_t thread_id;
- ACE_Thread_Manager::instance ()->thr_self (thread_id);
-
- ACE_DEBUG ((LM_DEBUG, "Suspend_Resume_Test::svc (), thread ID is %d\n",
- thread_id));
-#endif /* DEBUG */
-
- low_.ready ();
-
- // For information: the cost of the just the loop itself below,
- // without the suspend and resume calls, on a 166 MHz Ultrasparc
- // is about 12.3 nanoseconds per iteration.
-
- timer_.start ();
-
- for (ACE_UINT32 i = 0; i < iterations_; ++i)
- {
-#if DEBUG > 0
- if (i % (iterations_ >= 10 ? iterations_ / 10 : 1) == 0)
- ACE_DEBUG ((LM_DEBUG, "Suspend_Resume_Test::svc (), iteration %u\n",
- i));
-#endif /* DEBUG */
-
- if (ACE_OS::thr_suspend (low_.thread_id ()) != 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "thr_suspend"));
- low_.done ();
- return -1;
- }
-
- if (ACE_OS::thr_continue (low_.thread_id ()) != 0 &&
- errno != EINVAL)
- // EINVAL is OK: it just means that the thread needs to be joined.
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "thr_continue"));
- low_.done ();
- return -1;
- }
- }
-
- timer_.stop ();
- timer_.elapsed_microseconds (elapsed_time_);
-
- low_.done ();
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Suspend_Resume_Test::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class High_Priority_Simple_Task
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class High_Priority_Simple_Task : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- High_Priority_Simple_Task ();
- virtual ~High_Priority_Simple_Task ();
-
- virtual int svc ();
-
- // called by other task: it returns when this task is ready to
- // continue
- void ready () { initialized_.acquire (); }
-
- void done ();
-
- ACE_hthread_t thread_id () const { return thread_id_; }
- ACE_UINT32 iterations () const { return iterations_; }
-private:
- ACE_hthread_t thread_id_;
- ACE_Semaphore initialized_; // Block until thread_id_ is assigned.
- int terminate_;
- ACE_UINT32 iterations_;
-
- // Force proper construction of independent instances.
- High_Priority_Simple_Task (const High_Priority_Simple_Task &);
- High_Priority_Simple_Task &operator= (const High_Priority_Simple_Task &);
-};
-
-inline
-High_Priority_Simple_Task::High_Priority_Simple_Task() :
- ACE_Task<ACE_MT_SYNCH> (ACE_Thread_Manager::instance ()),
- initialized_ (0), // Initialize to locked, then unlock when ready.
- terminate_ (0),
- iterations_ (0)
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, HIGH_PRIORITY))
- ACE_OS::perror ("activate");
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task ctor, activated\n"));
-#endif /* DEBUG */
-}
-
-High_Priority_Simple_Task::~High_Priority_Simple_Task()
-{
-}
-
-int
-High_Priority_Simple_Task::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task::svc (), entering"));
-#endif /* DEBUG */
-
- ACE_Thread_Manager::instance ()->thr_self (thread_id_);
- initialized_.release ();
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u\n", thread_id_));
-#endif /* DEBUG */
-
- for (ACE_UINT32 i = 0; ! terminate_; ++i)
- {
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task::svc, suspend self ("
- "%u)\n", thread_id_));
-#endif /* DEBUG */
-
- ++iterations_;
-
- // immediately suspend self
- if (ACE_OS::thr_suspend (thread_id_) != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "thr_suspend"), -1);
- }
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task::svc, resumed (%u)\n",
- thread_id_));
-#endif /* DEBUG */
- }
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Simple_Task::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-inline
-void
-High_Priority_Simple_Task::done ()
-{
- terminate_ = 1;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Ping_Suspend_Resume_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Ping_Suspend_Resume_Test : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- Ping_Suspend_Resume_Test (const ACE_UINT32 iterations);
- virtual ~Ping_Suspend_Resume_Test ();
-
- virtual int svc ();
-
- ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
-private:
- const ACE_UINT32 iterations_;
-
- High_Priority_Simple_Task high_;
-
- ACE_High_Res_Timer timer_;
-
- ACE_hrtime_t elapsed_time_;
-
- // Force proper construction of independent instances.
- Ping_Suspend_Resume_Test ();
- Ping_Suspend_Resume_Test (const Ping_Suspend_Resume_Test &);
- Ping_Suspend_Resume_Test &operator= (const Ping_Suspend_Resume_Test &);
-};
-
-Ping_Suspend_Resume_Test::Ping_Suspend_Resume_Test (
- const ACE_UINT32 iterations)
-:
- ACE_Task<ACE_MT_SYNCH> (),
- iterations_ (iterations),
- high_ (),
- timer_ ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, LOW_PRIORITY))
- ACE_OS::perror ("activate");
-}
-
-Ping_Suspend_Resume_Test::~Ping_Suspend_Resume_Test()
-{
-}
-
-int
-Ping_Suspend_Resume_Test::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test::svc (), entering"));
-
- ACE_hthread_t thread_id;
- ACE_Thread_Manager::instance ()->thr_self (thread_id);
-
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u\n", thread_id));
-#endif /* DEBUG */
-
- high_.ready ();
-
-#if DEBUG > 0
- int priority, high_priority;
- ACE_OS::thr_getprio (thread_id, priority);
- ACE_OS::thr_getprio (high_.thread_id (), high_priority);
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test::svc (), priority is %d, "
- ", high thread priority is %d\n",
- priority, high_priority));
-#endif /* DEBUG */
-
- // For information: the cost of the just the loop itself below,
- // without the suspend and resume calls, on a 166 MHz Ultrasparc
- // is about 12.3 nanoseconds per iteration.
-
- timer_.start ();
-
- ACE_UINT32 i;
-
- for (i = 0; i < iterations_; ++i)
- {
-#if DEBUG > 0
- if (i % (iterations_ >= 10 ? iterations_ / 10 : 1) == 0)
- {
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test::svc (), iteration "
- "%d, continue high-priority thread %u\n",
- i, high_.thread_id ()));
- }
-#endif /* DEBUG */
- if (ACE_OS::thr_continue (high_.thread_id ()) != 0 &&
- errno != EINVAL)
- // EINVAL is OK: it just means that the thread needs to be joined.
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "thr_continue"));
- high_.done ();
- return -1;
- }
- }
-
- timer_.stop ();
- timer_.elapsed_microseconds (elapsed_time_);
-
- high_.done ();
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test::svc: told high priority "
- "task to terminate\n"));
-#endif /* DEBUG */
-
- // Resume the thread until thr_continue fails, indicating that it has
- // finished.
- for (i = 0; i < 10000 && ! ACE_OS::thr_continue (high_.thread_id ());
- ++i) /* null */;
-
- // Don't count the one iteration that was used to allow the high-priority
- // thread to terminate.
- if (high_.iterations () < iterations_)
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test: high priority task "
- "executed only %u iterations!\n",
- high_.iterations ()));
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Ping_Suspend_Resume_Test::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Yield_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Yield_Test : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- Yield_Test (const ACE_UINT32 iterations);
- virtual ~Yield_Test ();
-
- virtual int svc ();
-
- ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
-private:
- const ACE_UINT32 iterations_;
-#if defined (VXWORKS)
- ACE_Thread_Mutex mutex_;
- u_int started_;
- u_int stopped_;
-#else /* ! VXWORKS */
- ACE_Barrier timer_barrier_;
-#endif /* ! VXWORKS */
- ACE_High_Res_Timer timer_;
- ACE_hrtime_t elapsed_time_;
-
- // Force proper construction of independent instances.
- Yield_Test ();
- Yield_Test (const Yield_Test &);
- Yield_Test &operator= (const Yield_Test &);
-};
-
-Yield_Test::Yield_Test (const ACE_UINT32 iterations) :
- ACE_Task<ACE_MT_SYNCH> (),
- iterations_ (iterations),
-#if defined (VXWORKS)
- mutex_ (),
- started_ (0),
- stopped_ (0),
-#else /* ! VXWORKS */
- timer_barrier_ (3),
-#endif /* ! VXWORKS */
- timer_ ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Yield_Test ctor\n"));
-#endif /* DEBUG */
-
-#if !defined (VXWORKS)
- timer_.start ();
-#endif /* ! VXWORKS */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 2, 0, LOW_PRIORITY))
- ACE_OS::perror ("activate");
-
-#if !defined (VXWORKS)
- timer_barrier_.wait ();
- timer_.stop ();
-#endif /* ! VXWORKS */
-
- timer_.elapsed_microseconds (elapsed_time_);
-}
-
-Yield_Test::~Yield_Test()
-{
-}
-
-int
-Yield_Test::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc (), entering"));
-
- ACE_hthread_t thread_id;
- ACE_Thread_Manager::instance ()->thr_self (thread_id);
-
- int priority;
- ACE_OS::thr_getprio (thread_id, priority);
-
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u, priority is %u\n", thread_id,
- priority));
-#endif /* DEBUG */
-
-#if defined (VXWORKS)
- // Start the timer, if it hasn't already been started.
- if (! started_)
- {
- // Double-check.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
-
- if (! started_)
- {
- started_ = 1;
- timer_.start ();
- }
- }
-#endif /* VXWORKS */
-
- for (ACE_UINT32 i = 0; i < iterations_; ++i)
- {
-#if DEBUG > 0
- if (i % (iterations_ >= 10 ? iterations_ / 10 : 1) == 0)
- {
- ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc () [%u], iteration %u\n",
- thread_id, i));
- }
-#endif /* DEBUG */
-
- ACE_OS::thr_yield ();
- }
-
-#if defined (VXWORKS)
- // Stop the timer, if it hasn't already been started.
- if (! stopped_)
- {
- // Maybe it would be better to read the clock before grabbing
- // the mutex. Then, only apply the clock reading below, instead
- // of reading the clock after grabbing the mutex.
-
- // Double-check.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
-
- if (! stopped_)
- {
- stopped_ = 1;
- timer_.stop ();
- timer_.elapsed_time (elapsed_time_); /* nanoseconds */
- }
- }
-#else /* ! VXWORKS */
- timer_barrier_.wait ();
-#endif /* ! VXWORKS */
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Yield_Test::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Mutex_Acquire_Release_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Mutex_Acquire_Release_Test
-{
-public:
- Mutex_Acquire_Release_Test (const ACE_UINT32 iterations);
- virtual ~Mutex_Acquire_Release_Test ();
-
- virtual int svc ();
-
- ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
-private:
- ACE_Thread_Mutex mutex_;
- // Mutex used for acquire/release time measurement.
-
- ACE_Thread_Semaphore sem_;
- // Semaphore used for acquire/release time measurement.
-
- const ACE_UINT32 iterations_;
-
- ACE_High_Res_Timer timer_;
-
- ACE_hrtime_t elapsed_time_;
-
- // Force proper construction of independent instances.
- Mutex_Acquire_Release_Test ();
- Mutex_Acquire_Release_Test (const Mutex_Acquire_Release_Test &);
- Mutex_Acquire_Release_Test &operator= (const Mutex_Acquire_Release_Test &);
-};
-
-Mutex_Acquire_Release_Test::Mutex_Acquire_Release_Test (
- const ACE_UINT32 iterations) :
- mutex_ (),
- sem_ (),
- iterations_ (iterations),
- timer_ ()
-{
-}
-
-Mutex_Acquire_Release_Test::~Mutex_Acquire_Release_Test()
-{
-}
-
-int
-Mutex_Acquire_Release_Test::svc ()
-{
-#if DEBUG > 0
- ACE_hthread_t thread_id;
- ACE_Thread_Manager::instance ()->thr_self (thread_id);
-
- ACE_DEBUG ((LM_DEBUG,
- "Mutex_Acquire_Release_Test::svc (), thread ID is %d\n",
- thread_id));
-#endif /* DEBUG */
-
- timer_.start ();
-
- for (ACE_UINT32 i = 0; i < iterations_; ++i)
- {
- // Block on the mutex.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
-
- // Release the mutex so that the low priority thread can
- // proceed. The ACE_GUARD_RETURN macro implicity releases the
- // mutex.
- }
-
- timer_.stop ();
- timer_.elapsed_time (elapsed_time_); /* nanoseconds */
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Mutex_Acquire_Release_Test::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class High_Priority_Synchronized_Task
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class High_Priority_Synchronized_Task : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- High_Priority_Synchronized_Task (ACE_Thread_Semaphore &sem,
- ACE_Thread_Mutex &mutex,
- ACE_High_Res_Timer &timer);
- virtual ~High_Priority_Synchronized_Task ();
-
- virtual int svc ();
-
- void ready () { initialized_.acquire (); }
- // Called by other task: it returns when this task is ready to
- // continue
-
- void done ();
-
- ACE_UINT32 average_context_switch_time () const;
-
- ACE_hthread_t thread_id () const { return thread_id_; }
- ACE_UINT32 iterations () const { return iterations_; }
-private:
- ACE_hthread_t thread_id_;
- ACE_Semaphore initialized_; // Block until thread_id_ is assigned.
- int terminate_;
- ACE_UINT32 iterations_;
-
- ACE_Thread_Semaphore &sem_;
- // Semaphore used to resume the task.
-
- ACE_Thread_Mutex &mutex_;
- // Mutex used to block the task.
-
- ACE_High_Res_Timer &timer_;
- // Clock shared between low and high priority tasks.
-
- ACE_hrtime_t total_time_;
- // Running total context switch time, nsec.
-
- // Force proper construction of independent instances.
- High_Priority_Synchronized_Task ();
- High_Priority_Synchronized_Task (const High_Priority_Synchronized_Task &);
- High_Priority_Synchronized_Task &
- operator= (const High_Priority_Synchronized_Task &);
-};
-
-High_Priority_Synchronized_Task::High_Priority_Synchronized_Task (
- ACE_Thread_Semaphore &sem,
- ACE_Thread_Mutex &mutex,
- ACE_High_Res_Timer &timer) :
- ACE_Task<ACE_MT_SYNCH> (ACE_Thread_Manager::instance ()),
- initialized_ (0), // Initialize to locked, then unlock when ready.
- terminate_ (0),
- iterations_ (0),
- sem_ (sem),
- mutex_ (mutex),
- timer_ (timer),
- total_time_ (0)
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Synchronized_Task ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, HIGH_PRIORITY))
- ACE_OS::perror ("activate");
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Synchronized_Task ctor, activated\n"));
-#endif /* DEBUG */
-}
-
-High_Priority_Synchronized_Task::~High_Priority_Synchronized_Task()
-{
-}
-
-int
-High_Priority_Synchronized_Task::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Synchronized_Task::svc (), entering"));
-#endif /* DEBUG */
-
- ACE_Thread_Manager::instance ()->thr_self (thread_id_);
-
- ACE_UINT32 mutex_acquire_release_time = 0;
- {
- Mutex_Acquire_Release_Test mutex_acquire_release_test (num_iterations);
- mutex_acquire_release_test.svc ();
- mutex_acquire_release_time =
- ACE_static_cast (ACE_UINT32,
- mutex_acquire_release_test.elapsed_time () /
- num_iterations);
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "mutex_acquire_release: %u nsec\n",
- mutex_acquire_release_time));
-#endif /* DEBUG */
- }
-
- initialized_.release ();
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u\n", thread_id_));
-#endif /* DEBUG */
-
- for (ACE_UINT32 i = 0; ! terminate_; ++i)
- {
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG,
- "High_Priority_Synchronized_Task::svc, wait on sem ("
- "%u)\n", thread_id_));
-#endif /* DEBUG */
-
- if (sem_.acquire () != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "sem_.acquire"), -1);
- }
-
- {
- // Block on the mutex.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, guard, mutex_, -1);
-
- timer_.stop ();
-
- ++iterations_;
-
- ACE_hrtime_t nsec;
- timer_.elapsed_time (nsec);
- const ACE_UINT32 context_switch_time =
- ACE_U64_TO_U32 (nsec) >= mutex_acquire_release_time ?
- ACE_U64_TO_U32 (nsec) - mutex_acquire_release_time : 0;
-
- total_time_ += context_switch_time;
-
- // Release the mutex so that the low priority thread can
- // proceed. The ACE_GUARD_RETURN macro implicity releases the
- // mutex.
- }
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG,
- "High_Priority_Synchronized_Task::svc, resumed (%u)\n",
- thread_id_));
-#endif /* DEBUG */
- }
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "High_Priority_Synchronized_Task::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-inline
-void
-High_Priority_Synchronized_Task::done ()
-{
- terminate_ = 1;
-}
-
-ACE_UINT32
-High_Priority_Synchronized_Task:: average_context_switch_time () const
-{
- return iterations_ > 0 ? ACE_static_cast (ACE_UINT32,
- total_time_ / iterations_)
- : 0;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Synchronized_Suspend_Resume_Test
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Synchronized_Suspend_Resume_Test : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- Synchronized_Suspend_Resume_Test (const ACE_UINT32 iterations);
- virtual ~Synchronized_Suspend_Resume_Test ();
-
- virtual int svc ();
-
- ACE_UINT32 average_context_switch_time ();
-
- ACE_hrtime_t elapsed_time () const { return elapsed_time_; }
-private:
- const ACE_UINT32 iterations_;
-
- ACE_Thread_Semaphore sem_;
- // Used by the low priority thread to resume the high priority thread.
-
- ACE_Thread_Mutex mutex_;
- // Used by the low priority thread to block the high priority thread.
-
- ACE_High_Res_Timer timer_;
- // Clock shared between low and high priority tasks.
-
- High_Priority_Synchronized_Task high_;
- // The high priority task.
-
- ACE_hrtime_t elapsed_time_;
-
- ACE_UINT32 mutex_acquire_release_time_;
-
- // Force proper construction of independent instances.
- Synchronized_Suspend_Resume_Test ();
- Synchronized_Suspend_Resume_Test (const Synchronized_Suspend_Resume_Test &);
- Synchronized_Suspend_Resume_Test &
- operator= (const Synchronized_Suspend_Resume_Test &);
-};
-
-Synchronized_Suspend_Resume_Test::Synchronized_Suspend_Resume_Test (
- const ACE_UINT32 iterations)
-:
- ACE_Task<ACE_MT_SYNCH> (),
- iterations_ (iterations),
- sem_ (0),
- mutex_ (),
- timer_ (),
- high_ (sem_, mutex_, timer_),
- mutex_acquire_release_time_ (0)
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Synchronized_Suspend_Resume_Test ctor\n"));
-#endif /* DEBUG */
-
- if (this->activate (THR_BOUND | THR_DETACHED | THR_SCHED_FIFO | new_lwp,
- 1, 0, LOW_PRIORITY))
- ACE_OS::perror ("activate");
-}
-
-Synchronized_Suspend_Resume_Test::~Synchronized_Suspend_Resume_Test()
-{
-}
-
-int
-Synchronized_Suspend_Resume_Test::svc ()
-{
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Synchronized_Suspend_Resume_Test::svc (), entering"));
-
- ACE_hthread_t thread_id;
- ACE_Thread_Manager::instance ()->thr_self (thread_id);
-
- ACE_DEBUG ((LM_DEBUG, "; thread ID is %u\n", thread_id));
-#endif /* DEBUG */
-
- {
- Mutex_Acquire_Release_Test mutex_acquire_release_test (num_iterations);
- mutex_acquire_release_test.svc ();
- mutex_acquire_release_time_ =
- ACE_static_cast (ACE_UINT32,
- mutex_acquire_release_test.elapsed_time () /
- num_iterations);
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "mutex_acquire_release: %u nsec\n",
- mutex_acquire_release_time_));
-#endif /* DEBUG */
- }
-
- high_.ready ();
-
-#if DEBUG > 0
- int priority, high_priority;
- ACE_OS::thr_getprio (thread_id, priority);
- ACE_OS::thr_getprio (high_.thread_id (), high_priority);
- ACE_DEBUG ((LM_DEBUG,
- "Synchronized_Suspend_Resume_Test::svc (), priority is %d, "
- ", high thread priority is %d\n",
- priority, high_priority));
-#endif /* DEBUG */
-
- // For information: the cost of the just the loop itself below,
- // without the suspend and resume calls, on a 166 MHz Ultrasparc
- // is about 12.3 nanoseconds per iteration.
-
- ACE_UINT32 i;
-
- for (i = 0; i < iterations_; ++i)
- {
-#if DEBUG > 0
- if (i % (iterations_ >= 10 ? iterations_ / 10 : 1) == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Synchronized_Suspend_Resume_Test::svc (), iteration "
- "%d, continue high-priority thread %u\n",
- i, high_.thread_id ()));
- }
-#endif /* DEBUG */
-
- {
- // Acquire the mutex so that the high priority thread will
- // block after we signal it via the condition variable.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, mutex_, -1);
-
- // Release the semaphore so that the high priority thread can
- // proceed.
- if (sem_.release () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "sem_.release"), -1);
-
- timer_.start ();
-
- // Release the mutex so that the high priority thread can
- // proceed. The ACE_GUARD_RETURN macro implicity releases
- // the mutex.
- }
- }
-
- high_.done ();
-
- // The high priority thread will be block on the semaphore, so
- // release it.
- if (sem_.release () != 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "sem_.release"), -1);
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG,
- "Synchronized_Suspend_Resume_Test::svc: told high priority "
- "task to terminate\n"));
-#endif /* DEBUG */
-
- // Resume the thread until thr_continue fails, indicating that it has
- // finished.
- for (i = 0; i < 10000 && ! ACE_OS::thr_continue (high_.thread_id ());
- ++i) /* null */;
-
-#if DEBUG > 0
- ACE_DEBUG ((LM_DEBUG, "Synchronized_Suspend_Resume_Test::svc, finishing\n"));
-#endif /* DEBUG */
-
- return 0;
-}
-
-ACE_UINT32
-Synchronized_Suspend_Resume_Test::average_context_switch_time ()
-{
- return high_.average_context_switch_time ();
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function get_options
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-static
-u_int
-get_options (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "c:n?");
- int opt;
- while ((opt = get_opt ()) != EOF) {
- switch (opt) {
- case 'c':
- if (ACE_OS::atoi (get_opt.optarg) >= 0)
- {
- count = ACE_OS::atoi (get_opt.optarg);
- }
- else
- {
- ACE_DEBUG ((LM_ERROR, "%n: count must be >= 0\n"));
- return 1;
- }
- break;
- case 'n':
- new_lwp = THR_NEW_LWP;
- break;
- case '?':
- ACE_DEBUG ((LM_ERROR, "usage: %n %s\n%a", usage, 0));
- break;
- default:
- ACE_DEBUG ((LM_ERROR, "%n: unknown arg, %c\n", opt));
- ACE_DEBUG ((LM_ERROR, "usage: %n %s\n", usage));
- return 1;
- }
- }
-
- switch (argc - get_opt.optind) {
- case 0:
- // use default number of iterations
- break;
- case 1:
- if (ACE_OS::atoi (argv [get_opt.optind]) > 0)
- {
- num_iterations = ACE_OS::atoi (argv [get_opt.optind]);
- }
- else
- {
- ACE_DEBUG ((LM_ERROR, "%n: iterations must be > 0\n"));
- return 1;
- }
- break;
- default:
- ACE_DEBUG ((LM_ERROR, "%n: too many arguments\n"));
- ACE_DEBUG ((LM_ERROR, "usage: %n %s\n", usage));
- return 1;
- }
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function main
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-int
-main (int argc, char *argv [])
-{
- ACE_LOG_MSG->open (argv[0] > 0 ? argv[0] : "context_switch_time");
-
- if (get_options (argc, argv))
- ACE_OS::exit (-1);
-
- // Disable LM_DEBUG.
- ACE_Log_Msg::instance ()->priority_mask (ACE_LOG_MSG->priority_mask () ^
- LM_DEBUG);
-
-#if defined (ACE_HAS_PENTIUM) && \
- !defined (ACE_HAS_HI_RES_TIMER) && !defined (ACE_WIN32)
- // Just to verify that ACE_High_Res_Timer::global_scale_factor ()
- // correctly determines the clock speed.
- ACE_DEBUG ((LM_INFO, "clock speed: %u MHz\n",
- ACE_High_Res_Timer::global_scale_factor ()));
-#endif /* ACE_HAS_PENTIUM && ! ACE_HAS_HI_RES_TIMER && ! ACE_WIN32 */
-
- if (ACE_OS::sched_params (
- ACE_Sched_Params (
- ACE_SCHED_FIFO,
- ACE_Sched_Params::priority_min (ACE_SCHED_FIFO),
- ACE_SCOPE_PROCESS)) != 0)
- {
- if (ACE_OS::last_error () == EPERM)
- {
- ACE_DEBUG ((LM_MAX, "context_switch_time: user is not superuser, "
- "so remain in time-sharing class\n"));
- }
- else
- {
- ACE_OS::perror ("context_switch_time");
- ACE_OS::exit (-1);
- }
- }
-
- HIGH_PRIORITY = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
- LOW_PRIORITY);
- ACE_DEBUG ((LM_INFO, "low priority: %d, high priority: %d\n",
- LOW_PRIORITY, HIGH_PRIORITY));
-
- // Set the priority of this thread so that it's higher than any of
- // the test threads. That might help avoid problems when waiting on
- // those threads, below. It also seems to help the times
- // significantly on LynxOS.
- ACE_hthread_t self;
- ACE_OS::thr_self (self);
- ACE_OS::thr_setprio (ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
- HIGH_PRIORITY));
-
- int forever = count == 0;
-
- ACE_Stats context_switch_test_stats;
- ACE_Stats yield_test_stats;
- ACE_Stats synchronized_suspend_resume_test_stats;
-
- int suspend_resume_supported = 0;
- // Check to see if thr_continue (), and therefore thr_suspend (),
- // probably, are supported.
- if (ACE_OS::thr_continue (self) == 0 || errno != ENOTSUP)
- suspend_resume_supported = 1;
-
- while (forever || count-- > 0)
- {
- if (suspend_resume_supported)
- {
- // Run suspend/resume test first . . .
- Suspend_Resume_Test suspend_resume_test (num_iterations);
- // Wait for all tasks to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- // Then Ping Suspend/Resume test.
- Ping_Suspend_Resume_Test ping_suspend_resume_test (num_iterations);
- // Wait for all tasks to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- if (ping_suspend_resume_test.elapsed_time () >
- suspend_resume_test.elapsed_time ())
- {
- context_switch_test_stats.
- sample (ACE_U64_TO_U32 (
- ping_suspend_resume_test.elapsed_time () -
- suspend_resume_test.elapsed_time ()));
-
- ACE_DEBUG ((LM_INFO, "context switch time is (%.3f - %.3f)/2 = "
- "%.3f microseconds\n",
- (double) ACE_UINT64_DBLCAST_ADAPTER (
- ping_suspend_resume_test.elapsed_time ()) /
- num_iterations,
- (double) ACE_UINT64_DBLCAST_ADAPTER (
- suspend_resume_test.elapsed_time ()) /
- num_iterations,
- (double) ACE_UINT64_DBLCAST_ADAPTER (
- ping_suspend_resume_test.elapsed_time () -
- suspend_resume_test.elapsed_time ()) /
- num_iterations / 2u));
- }
- else
- {
- ACE_DEBUG ((LM_INFO, "ping suspend/resume time of %u usec was "
- "less than suspend/resume time of %u\n",
- ping_suspend_resume_test.elapsed_time () /
- num_iterations,
- suspend_resume_test.elapsed_time () /
- num_iterations));
- }
- }
-
-#if !defined (VXWORKS)
- // Then Yield test.
- Yield_Test yield_test (num_iterations);
- // Wait for all tasks to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- yield_test_stats.sample (ACE_U64_TO_U32 (yield_test.elapsed_time ()));
-
- // Try _really_ hard not to use floating point.
- ACE_DEBUG ((LM_INFO, "context switch time from yield test is %u.%03u "
- "microseconds\n",
- (ACE_UINT32)
- (yield_test.elapsed_time () / num_iterations / 2u),
- (ACE_UINT32)
- (yield_test.elapsed_time () % (num_iterations * 2u)) *
- 1000u / num_iterations / 2u));
-#endif /* ! VXWORKS */
-
- Synchronized_Suspend_Resume_Test
- synchronized_suspend_resume_test (num_iterations);
- // Wait for all tasks to exit.
- ACE_Thread_Manager::instance ()->wait ();
-
- synchronized_suspend_resume_test_stats.sample (
- synchronized_suspend_resume_test.average_context_switch_time ());
-
- ACE_DEBUG ((LM_INFO, "context switch time from synch susp/resume test "
- "is %u.%03u microseconds\n",
- synchronized_suspend_resume_test.
- average_context_switch_time () / 1000u,
- synchronized_suspend_resume_test.
- average_context_switch_time () % 1000u));
-
- // Give, e.g., Draft 4 Posix platforms a chance to cleanup threads.
- const ACE_Time_Value half_sec (0L, 500000L);
- ACE_OS::sleep (half_sec);
- }
-
- if (suspend_resume_supported)
- {
- ACE_OS::printf ("suspend-resume test: ");
- context_switch_test_stats.print_summary (3, num_iterations * 2u);
- }
-
-#if !defined (VXWORKS)
- ACE_OS::printf ("\nyield_test: ");
- yield_test_stats.print_summary (3, num_iterations * 2u);
-#endif /* ! VXWORKS */
-
- ACE_OS::printf ("\nsynchronized suspend-resume test: ");
- synchronized_suspend_resume_test_stats.print_summary (3,
- 1000u /* nsec/usec */);
-
- return 0;
-}
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
- return 0;
-}
-#endif /* ACE_HAS_THREADS */
-
-
-// EOF
diff --git a/performance-tests/Misc/context_switch_time.dsp b/performance-tests/Misc/context_switch_time.dsp
deleted file mode 100644
index 4f98a04c458..00000000000
--- a/performance-tests/Misc/context_switch_time.dsp
+++ /dev/null
@@ -1,156 +0,0 @@
-# Microsoft Developer Studio Project File - Name="context_switch_time" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=context_switch_time - Win32 static Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "context_switch_time.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "context_switch_time.mak" CFG="context_switch_time - Win32 static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "context_switch_time - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "context_switch_time - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "context_switch_time - Win32 static Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "context_switch_time - Win32 static Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "context_switch_time - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\context_switch_time\Release"
-# PROP BASE Intermediate_Dir ".\context_switch_time\Release"
-# PROP BASE Target_Dir ".\context_switch_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\context_switch_time"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "context_switch_time - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\context_switch_time\Debug"
-# PROP BASE Intermediate_Dir ".\context_switch_time\Debug"
-# PROP BASE Target_Dir ".\context_switch_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\context_switch_time"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "context_switch_time - Win32 static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "context_switch_time\static Debug"
-# PROP BASE Intermediate_Dir "context_switch_time\static Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir "context_switch_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "static_Debug"
-# PROP Intermediate_Dir "static_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "context_switch_time"
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D ACE_HAS_DLL=0 /D ACE_NO_INLINE /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-# ADD LINK32 acesd.lib advapi32.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "context_switch_time - Win32 static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "context_switch_time\static Release"
-# PROP BASE Intermediate_Dir "context_switch_time\static Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir "context_switch_time"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "static_Release"
-# PROP Intermediate_Dir "static_Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir "context_switch_time"
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D ACE_HAS_DLL=0 /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-# ADD LINK32 aces.lib advapi32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "context_switch_time - Win32 Release"
-# Name "context_switch_time - Win32 Debug"
-# Name "context_switch_time - Win32 static Debug"
-# Name "context_switch_time - Win32 static Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\context_switch_time.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/misc.dsw b/performance-tests/Misc/misc.dsw
deleted file mode 100644
index ce8b667ace1..00000000000
--- a/performance-tests/Misc/misc.dsw
+++ /dev/null
@@ -1,89 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "basic_perf"=".\basic_perf.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "childbirth_time"=".\childbirth_time.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "context_switch_time"=".\context_switch_time.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_mutex"=".\test_mutex.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_naming"=".\test_naming.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_singleton"=".\test_singleton.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/performance-tests/Misc/preempt.cpp b/performance-tests/Misc/preempt.cpp
deleted file mode 100644
index f824ab17027..00000000000
--- a/performance-tests/Misc/preempt.cpp
+++ /dev/null
@@ -1,455 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance-tests/Misc
-//
-// = FILENAME
-// preempt.cpp
-//
-// = DESCRIPTION
-// This is a simple test to illustrate OS thread preemption. One
-// ore more high priority threads periodically (every half
-// second, by default) reads the clock. They use select () to
-// block for that duration. Meanwhile, a low priority thread
-// continually chews up the CPU. Without preemption, the high
-// priority thread won't have a chance to read the clock in a
-// timely manner.
-//
-// At the end of the test, the actual clock read intervals by the
-// high priority task(s) are printed out. With proper
-// preemption, the intervals should correspond to the requested
-// clock read interval.
-//
-// There is a -y option for the low priority thread to periodically
-// yield. It shouldn't be necessary to use that option, if preemption
-// is supported. It's a handy option for testing.
-//
-// = AUTHOR
-// David L. Levine
-//
-// ============================================================================
-
-#include "ace/Task.h"
-#include "ace/Sched_Params.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(Misc, preempt, "$Id$")
-
-#if defined (ACE_HAS_THREADS) || ! defined (ACE_LACKS_FORK)
-
-#if defined (ACE_HAS_STHREADS)
-# include <sys/lwp.h> /* for _lwp_self () */
-#endif /* ACE_HAS_STHREADS */
-
-static const char usage [] = "[-? |\n"
-#if defined (ACE_HAS_THREADS)
- " [-f use fork instead of spawn]\n"
-#endif /* ACE_HAS_THREADS */
- " [-h <high pri iterations, default 10>]\n"
- " [-l <low pri iterations, default 25000>]\n"
- " [-n <high priority threads, default 1>]\n"
- " [-p <read period, default 500000 usec>]\n"
- " [-y to yield the low priority thread]]\n";
-
-// Configuration options.
-#if defined (ACE_HAS_THREADS)
-u_int use_fork = 0;
-#else /* ! ACE_HAS_THREADS */
-u_int use_fork = 1;
-#endif /* ! ACE_HAS_THREADS */
-u_int high_iterations = 10;
-u_int high_priority_tasks = 1;
-u_int low_iterations = 25000; /* Big enough to keep the low priority task
- cranking for a while */
-u_long read_period = 500000; /* usec */
-u_int low_yield = 0;
-
-// To permit calculation of relative times.
-ACE_hrtime_t starttime;
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class High_Priority_Task
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class High_Priority_Task : public ACE_Task<ACE_SYNCH>
-{
-public:
- High_Priority_Task (void);
- ~High_Priority_Task (void);
-
- int open (void *);
- int svc (void);
- int done () const { return done_; }
- void print_times () const;
-
-private:
- int priority_;
- int done_;
- u_long *time_;
-};
-
-High_Priority_Task::High_Priority_Task (void)
- : ACE_Task<ACE_SYNCH> (ACE_Thread_Manager::instance ()),
- priority_ (ACE_Sched_Params::next_priority (
- ACE_SCHED_FIFO,
- ACE_Sched_Params::priority_min (ACE_SCHED_FIFO,
- ACE_SCOPE_THREAD),
- ACE_SCOPE_THREAD)),
- done_ (0)
-{
- ACE_NEW (time_, u_long[high_iterations]);
-}
-
-High_Priority_Task::~High_Priority_Task (void)
-{
- delete [] time_;
- time_ = 0;
-}
-
-int
-High_Priority_Task::open (void *)
-{
- if (use_fork == 1)
- {
- ACE_hthread_t thr_handle;
- ACE_Thread::self (thr_handle);
-
- if (ACE_Thread::setprio (thr_handle, priority_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "setprio failed"), -1);
-
- return svc ();
- }
- else
- {
- long flags = THR_BOUND | THR_NEW_LWP | THR_SCHED_FIFO;
-
- // Become an active object.
- if (this->activate (flags, 1, 0, this->priority_) == -1)
- {
- ACE_DEBUG ((LM_ERROR, "(%P|%t) task activation failed, exiting!\n%a",
- -1));
- }
-
- return 0;
- }
-}
-
-int
-High_Priority_Task::svc (void)
-{
- ACE_hthread_t thr_handle;
- ACE_Thread::self (thr_handle);
- int prio;
-
- if (ACE_Thread::getprio (thr_handle, prio) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "getprio failed"), -1);
-
-#if defined (ACE_HAS_STHREADS)
- ACE_DEBUG ((LM_DEBUG, "(%P|%u|%t) High: prio = %d, priority_ = %d\n",
- _lwp_self (), prio, this->priority_));
-#else /* ! ACE_HAS_STHREADS */
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) High: prio = %d, priority_ = %d\n",
- prio, this->priority_));
-#endif /* ! ACE_HAS_STHREADS */
- ACE_ASSERT (this->priority_ == prio);
-
- ACE_Time_Value pause (0, read_period);
-
- for (u_int i = 0; i < high_iterations; ++i)
- {
- time_ [i] = (u_long) ((ACE_OS::gethrtime () - starttime)/
- (ACE_UINT32) 1000000u);
- ACE_OS::select (0, 0, 0, 0, &pause);
- }
-
- done_ = 1;
-
- return 0;
-}
-
-void
-High_Priority_Task::print_times () const
-{
- for (u_int i = 0; i < high_iterations; ++i)
- {
- ACE_DEBUG ((LM_INFO, " iteration %u, time %u msec\n",
- i, time_ [i]));
- }
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// class Low_Priority_Task
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class Low_Priority_Task : public ACE_Task<ACE_SYNCH>
-{
-public:
- Low_Priority_Task (const High_Priority_Task &);
-
- int open (void *);
- int svc (void);
-
-private:
- int priority_;
- const High_Priority_Task &high_priority_task_;
-};
-
-Low_Priority_Task::Low_Priority_Task (
- const High_Priority_Task &high_priority_task)
- : ACE_Task<ACE_SYNCH> (ACE_Thread_Manager::instance ()),
- priority_ (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO,
- ACE_SCOPE_THREAD)),
- high_priority_task_ (high_priority_task)
-{
-}
-
-int
-Low_Priority_Task::open (void *)
-{
- if (use_fork == 1)
- {
- ACE_hthread_t thr_handle;
- ACE_Thread::self (thr_handle);
-
- if (ACE_Thread::setprio (thr_handle, priority_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "setprio failed"), -1);
-
- return svc ();
- }
- else
- {
- long flags = THR_BOUND | THR_NEW_LWP | THR_SCHED_FIFO;
-
- // Become an active object.
- if (this->activate (flags, 1, 0, this->priority_) == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P|%t) task activation failed, exiting!\n%a",
- -1));
- return 0;
- }
-}
-
-int
-Low_Priority_Task::svc (void)
-{
- ACE_hthread_t thr_handle;
- ACE_Thread::self (thr_handle);
- int prio;
-
- if (ACE_Thread::getprio (thr_handle, prio) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "getprio failed"), -1);
-
-#if defined (ACE_HAS_STHREADS)
- ACE_DEBUG ((LM_DEBUG, "(%P|%u|%t) Low: prio = %d, priority_ = %d\n",
- _lwp_self (), prio, this->priority_));
-#else /* ! ACE_HAS_STHREADS */
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Low: prio = %d, priority_ = %d\n",
- prio, this->priority_));
-#endif /* ! ACE_HAS_STHREADS */
- ACE_ASSERT (this->priority_ == prio);
-
- u_long iterations = 0;
-
- // Chew up CPU for the entire interval.
- for (;
- ! high_priority_task_.done () && iterations < low_iterations;
- ++iterations)
- {
- u_long n = 1279ul; /* Takes about 40.2 usecs on a 168 MHz Ultra2. */
- ACE::is_prime (n,
- 2ul /* min_factor */,
- n/2 /* max_factor */);
-
- if (low_yield)
- ACE_OS::thr_yield ();
- }
-
- ACE_DEBUG ((LM_INFO, "Low completed %u iterations\n", iterations));
-
- return 0;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function get_options
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-static int
-get_options (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "fh:l:n:p:y?");
- int opt;
- while ((opt = get_opt ()) != EOF) {
- switch (opt) {
- case 'f':
- use_fork = 1;
- break;
- case 'h':
- if (ACE_OS::atoi (get_opt.optarg) >= 2)
- high_iterations = ACE_OS::atoi (get_opt.optarg);
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%n: high iterations must be >= 2\n"),
- -1);
- break;
- case 'l':
- if (ACE_OS::atoi (get_opt.optarg) >= 2)
- low_iterations = ACE_OS::atoi (get_opt.optarg);
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%n: low iterations must be >= 2\n"), -1);
- break;
- case 'n':
- if (ACE_OS::atoi (get_opt.optarg) >= 1)
- high_priority_tasks = ACE_OS::atoi (get_opt.optarg);
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%n: number of high priority threads "
- "must be >= 1\n"), -1);
- break;
- case 'p':
- if (ACE_OS::atoi (get_opt.optarg) > 0)
- read_period = ACE_OS::atoi (get_opt.optarg);
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%n: read period > 0\n"), -1);
- break;
- case 'y':
- low_yield = 1;
- break;
- case '?':
- ACE_DEBUG ((LM_ERROR, "usage: %n %s\n%a", usage, 0));
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n: unknown arg, %c\nusage: %n %s\n", opt, usage),
- -1);
- }
- }
-
- switch (argc - get_opt.optind) {
- case 0:
- // OK, no non-flag arguments.
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n: too many arguments\nusage: %n %s\n", usage),
- -1);
- }
-
- return 0;
-}
-
-#endif /* ACE_HAS_THREADS || ! ACE_LACKS_FORK */
-
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// function main
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-int
-main (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0] ? argv[0] : "preempt");
-
-#if defined (ACE_HAS_THREADS) || !defined (ACE_LACKS_FORK)
-
- u_int i;
-
- if (get_options (argc, argv))
- ACE_OS::exit (-1);
-
- // Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
- if (ACE_OS::sched_params (
- ACE_Sched_Params (
- ACE_SCHED_FIFO,
- ACE_Sched_Params::priority_min (ACE_SCHED_FIFO),
- ACE_SCOPE_PROCESS)) != 0)
- {
- if (ACE_OS::last_error () == EPERM)
- ACE_DEBUG ((LM_MAX, "preempt: user is not superuser, "
- "so remain in time-sharing class\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "%n: ACE_OS::sched_params failed\n%a"),
- -1);
- }
-
- High_Priority_Task *high_priority_task;
- ACE_NEW_RETURN (high_priority_task, High_Priority_Task [high_priority_tasks],
- 1);
-
- Low_Priority_Task low_priority_task (high_priority_task[0]);
-
- if (! use_fork)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) main (), wait for threads to exit . . .\n"));
- }
-
- // Save the start time, so that deltas can be displayed later.
- starttime = ACE_OS::gethrtime ();
-
- // Spawn the threads/processes . . .
- pid_t child = 0;
- if (use_fork == 1)
- {
- switch ((child = ACE_OS::fork ("preempt-low_priority_process")))
- {
- case -1:
- ACE_ERROR ((LM_ERROR, "%p\n%a", "fork failed"));
- return -1;
- case 0: // In child
- {
- low_priority_task.open (0);
- break;
- }
- default: // In parent
- for (i = 0; i < high_priority_tasks; ++i)
- {
- high_priority_task[i].open (0);
- }
- break;
- }
- }
- else
- {
- for (i = 0; i < high_priority_tasks; ++i)
- {
- high_priority_task[i].open (0);
- }
- low_priority_task.open (0);
-
-#if defined (ACE_HAS_THREADS)
- // Wait for all threads to exit.
- ACE_Thread_Manager::instance ()->wait ();
-#endif /* ACE_HAS_THREADS */
- }
-
- // Display the time deltas. They should be about a half second apart.
- if (child || ! use_fork)
- {
- for (i = 0; i < high_priority_tasks; ++i)
- {
- ACE_DEBUG ((LM_DEBUG, "High priority task %u:\n", i + 1));
- high_priority_task[i].print_times ();
- }
- }
-
- delete [] high_priority_task;
-
-#else /* ! ACE_HAS_THREADS && ACE_LACKS_FORK */
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
- ACE_ERROR ((LM_ERROR, "threads and fork not supported on this platform\n"));
-#endif /* ! ACE_HAS_THREADS && ACE_LACKS_FORK */
-
- return 0;
-}
diff --git a/performance-tests/Misc/test_guard.cpp b/performance-tests/Misc/test_guard.cpp
deleted file mode 100644
index 78024742e5f..00000000000
--- a/performance-tests/Misc/test_guard.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-// This test program illustrates the performance of ACE_Guard and
-// ACE_Thread_Mutex_Guard.
-
-#include "ace/Log_Msg.h"
-#include "ace/Get_Opt.h"
-#include "ace/Profile_Timer.h"
-#include "ace/Synch.h"
-
-#if !defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
-#error You must compile ACE and this program with ACE_USES_OBSOLETE_GUARD_CLASSES defined!
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
-
-ACE_RCSID(Misc, test_guard, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-# define ACE_THREAD_GUARD(OBJ,LOCK) \
- ACE_Thread_Mutex_Guard OBJ (LOCK); \
- if (OBJ.locked () == 0) return;
-
-static const int DEFAULT_ITERATIONS = 100000000;
-
-enum
-{
- TEST_GUARD,
- TEST_THR_GUARD,
- TEST_END
-};
-
-ACE_Thread_Mutex lock_;
-typedef void (*guard_func)(void);
-int test_type = TEST_GUARD;
-int dummy = 0;
-
-void guard (void)
-{
- ACE_GUARD (ACE_Thread_Mutex, _ace_mon, lock_);
- dummy++;
-}
-
-void thr_guard (void)
-{
- ACE_THREAD_GUARD (_ace_mon, lock_);
- dummy++;
-}
-
-char *test_name[TEST_END] = { "ACE_Guard", "ACE_Thread_Mutex_Guard" };
-
-guard_func test_function=guard;
-
-int
-main (int argc, char *argv[])
-{
- ACE_Profile_Timer timer;
- ACE_Get_Opt getopt (argc, argv, "gtn:");
- int iterations = DEFAULT_ITERATIONS;
- int c, i;
-
- while ((c = getopt()) != -1)
- switch (c)
- {
-#if defined (ACE_USES_OBSOLETE_GUARD_CLASSES)
- case 't':
- test_type = TEST_THR_GUARD;
- test_function = thr_guard;
- break;
-#endif /* ACE_USES_OBSOLETE_GUARD_CLASSES */
- case 'g':
- test_type = TEST_GUARD;
- test_function = guard;
- break;
- case 'n':
- iterations = ACE_OS::atoi (getopt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "Invalid option\n"), -1);
- }
-
- ACE_DEBUG ((LM_DEBUG, "%s for iterations = %d\n", test_name[test_type], iterations));
-
- timer.start ();
-
- // Test the thread mutex (which doesn't use inheritance or dynamic
- // binding).
-
- for (i = 0; i < iterations; i++)
- test_function ();
-
- timer.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time et;
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "Thread_Mutex\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- return 0;
-}
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
- return 0;
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/performance-tests/Misc/test_mutex.cpp b/performance-tests/Misc/test_mutex.cpp
deleted file mode 100644
index e854af98755..00000000000
--- a/performance-tests/Misc/test_mutex.cpp
+++ /dev/null
@@ -1,232 +0,0 @@
-// $Id$
-
-// This test program illustrates the performance difference between
-// three versions of wrappers for thread mutexes. These three
-// versions exercise various combinations of the following classes:
-//
-// Thread_Mutex --
-// This version is just like ACE_Thread_Mutex, which doesn't use
-// inheritance and dynamic binding.
-//
-// Mutex_Base --
-// This is an abstract base class that defines the
-// acquire()/release() interface.
-//
-// Thread_Mutex_Derived --
-// This derived from Mutex_Base and uses inheritance and
-// dynamic binding.
-//
-// The following are the results I got when running this on our
-// SPARCstation 20 model 712:
-//
-// ./test_mutex 1000000
-// iterations = 1000000
-// Thread_Mutex
-// real time = 1.727843 secs, user time = 1.729262 secs, system time = 0.000325 secs
-// time per call = 1.747843 usecs
-// Thread_Mutex_Derived
-// real time = 1.730225 secs, user time = 1.724744 secs, system time = 0.000096 secs
-// time per call = 1.730225 usecs
-// Mutex_Base
-// real time = 2.112831 secs, user time = 2.104245 secs, system time = 0.000095 secs
-// time per call = 2.112831 usecs
-//
-// My conclusions are as follows:
-//
-// 1. If your C++ compiler optimizes calls to virtual functions that
-// are made through instances of derived classes, then the
-// performance of the Thread_Mutex and Thread_Mutex_Derived are
-// essentially identical.
-//
-// 2. The overhead from using virtual functions is approximately
-// 20%. Naturally, as the amount of contention goes up, the
-// relative overhead of the virtual function calls will decrease.
-//
-// Keep in mind, however, that using virtual functions to implement
-// the Thread_Mutex will make it infeasible to put instances of
-// Thread_Mutex into shared memory since the vptrs won't point to the
-// correct vtables...
-
-#include "ace/Log_Msg.h"
-#include "ace/Profile_Timer.h"
-#include "ace/OS.h"
-
-ACE_RCSID(Misc, test_mutex, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-static const int DEFAULT_ITERATIONS = 100000000;
-
-// A thread mutex that doesn't use virtual functions.
-class Thread_Mutex
-{
-public:
- Thread_Mutex (void);
- ~Thread_Mutex (void);
- int acquire (void);
- int release (void);
-
-private:
- ACE_mutex_t mutex_;
-};
-
-Thread_Mutex::Thread_Mutex (void)
-{
- ACE_OS::mutex_init (&this->mutex_);
-}
-
-Thread_Mutex::~Thread_Mutex (void)
-{
- ACE_OS::mutex_destroy (&this->mutex_);
-}
-
-inline int
-Thread_Mutex::acquire (void)
-{
- return ACE_OS::mutex_lock (&this->mutex_);
-}
-
-inline int
-Thread_Mutex::release (void)
-{
- return ACE_OS::mutex_unlock (&this->mutex_);
-}
-
-// Base class for mutex, declares pure virtual functions.
-class Mutex_Base
-{
-public:
- virtual int acquire (void) = 0;
- virtual int release (void) = 0;
-};
-
-// Subclass for threaded mutex, defines virtual functions.
-class Thread_Mutex_Derived : public Mutex_Base
-{
-public:
- Thread_Mutex_Derived (void);
- virtual ~Thread_Mutex_Derived (void);
- virtual int acquire (void);
- virtual int release (void);
-
-private:
- ACE_mutex_t mutex_;
-};
-
-Thread_Mutex_Derived::Thread_Mutex_Derived (void)
-{
- ACE_OS::mutex_init (&this->mutex_);
-}
-
-Thread_Mutex_Derived::~Thread_Mutex_Derived (void)
-{
- ACE_OS::mutex_destroy (&this->mutex_);
-}
-
-inline int
-Thread_Mutex_Derived::acquire (void)
-{
- return ACE_OS::mutex_lock (&this->mutex_);
-}
-
-inline int
-Thread_Mutex_Derived::release (void)
-{
- return ACE_OS::mutex_unlock (&this->mutex_);
-}
-
-static Thread_Mutex thread_mutex;
-static Thread_Mutex_Derived thread_mutex_derived;
-static Mutex_Base *mutex_base = &thread_mutex_derived;
-
-int
-main (int argc, char *argv[])
-{
- ACE_Profile_Timer timer;
- int iterations = argc > 1 ? ACE_OS::atoi (argv[1]) : DEFAULT_ITERATIONS;
- int i;
-
- ACE_DEBUG ((LM_DEBUG, "iterations = %d\n", iterations));
-
- timer.start ();
-
- // Test the thread mutex (which doesn't use inheritance or dynamic
- // binding).
-
- for (i = 0; i < iterations; i++)
- {
- thread_mutex.acquire ();
- thread_mutex.release ();
- }
-
- timer.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time et;
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "Thread_Mutex\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- // Test the thread mutex derived (which does use inheritance or
- // dynamic binding). Note that we call this via an instance of the
- // derived class, so good C++ compilers should optimize the virtual
- // function calls in this case.
-
- timer.start ();
-
- for (i = 0; i < iterations; i++)
- {
- thread_mutex_derived.acquire ();
- thread_mutex_derived.release ();
- }
-
- timer.stop ();
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "Thread_Mutex_Derived\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- // Test the thread mutex derived (which does use inheritance or
- // dynamic binding). Note that we call this via a pointer to the
- // base class, which points to an instance of the derived class.
- // Thus, C++ compilers won't be able to optimize the virtual
- // function calls in this case.
-
- timer.start ();
-
- for (i = 0; i < iterations; i++)
- {
- mutex_base->acquire ();
- mutex_base->release ();
- }
-
- timer.stop ();
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "Mutex_Base\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
- return 0;
-}
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
- return 0;
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/performance-tests/Misc/test_mutex.dsp b/performance-tests/Misc/test_mutex.dsp
deleted file mode 100644
index 9ffbe458e94..00000000000
--- a/performance-tests/Misc/test_mutex.dsp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_mutex" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_mutex - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_mutex.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_mutex.mak" CFG="test_mutex - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_mutex - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "test_mutex - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "test_mutex - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\test_mutex\Release"
-# PROP BASE Intermediate_Dir ".\test_mutex\Release"
-# PROP BASE Target_Dir ".\test_mutex"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_mutex"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "test_mutex - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\test_mutex\Debug"
-# PROP BASE Intermediate_Dir ".\test_mutex\Debug"
-# PROP BASE Target_Dir ".\test_mutex"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_mutex"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "test_mutex - Win32 Release"
-# Name "test_mutex - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_mutex.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/test_naming.cpp b/performance-tests/Misc/test_naming.cpp
deleted file mode 100644
index cad900da438..00000000000
--- a/performance-tests/Misc/test_naming.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// performance_tests
-//
-// = FILENAME
-// test_naming.cpp
-//
-// = DESCRIPTION
-// This is an example to do performance testing of the Naming Service
-// using both the normal Memory Pool as well as the light Memory Pool.
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-
-#include "ace/SString.h"
-#include "ace/Naming_Context.h"
-#include "ace/Profile_Timer.h"
-
-ACE_RCSID(Misc, test_naming, "$Id$")
-
-#define ACE_NS_MAX_ENTRIES 4000
-
-static char name[BUFSIZ];
-static char value[BUFSIZ];
-static char type[BUFSIZ];
-
-void
-bind (ACE_Naming_Context *ns_context, int result)
-{
- // do the binds
- for (int i = 1; i <= ACE_NS_MAX_ENTRIES; i++)
- {
- if (i % 50 == 0)
- ACE_DEBUG ((LM_DEBUG, "."));
- ACE_OS::sprintf (name, "%s%d", "name", i);
- ACE_WString w_name (name);
-
- ACE_OS::sprintf (value, "%s%d", "value", i);
- ACE_WString w_value (value);
-
- ACE_OS::sprintf (type, "%s%d", "type", i);
- ACE_ASSERT (ns_context->bind (w_name, w_value, type) == result);
- }
- ACE_DEBUG ((LM_DEBUG, "\n"));
-}
-
-void
-rebind (ACE_Naming_Context *ns_context, int result)
-{
- // do the rebinds
- for (int i = 1; i <= ACE_NS_MAX_ENTRIES; i++)
- {
- ACE_OS::sprintf (name, "%s%d", "name", i);
- ACE_WString w_name (name);
- ACE_OS::sprintf (value, "%s%d", "value", -i);
- ACE_WString w_value (value);
- ACE_OS::sprintf (type, "%s%d", "type", -i);
- ACE_ASSERT (ns_context->rebind (w_name, w_value, type) == result);
- }
-}
-
-void
-unbind (ACE_Naming_Context *ns_context, int result)
-{
- // do the unbinds
- for (int i = 1; i <= ACE_NS_MAX_ENTRIES; i++)
- {
- ACE_OS::sprintf (name, "%s%d", "name", i);
- ACE_WString w_name (name);
- ACE_ASSERT (ns_context->unbind (w_name) == result);
- }
-}
-
-void
-find (ACE_Naming_Context *ns_context, int sign, int result)
-{
- char temp_val[BUFSIZ];
- char temp_type[BUFSIZ];
-
- // do the finds
- for (int i = 1; i <= ACE_NS_MAX_ENTRIES; i++)
- {
- ACE_OS::sprintf (name, "%s%d", "name", i);
- ACE_WString w_name (name);
-
- ACE_WString w_value;
- char *type_out;
-
- if (sign == 1)
- {
- ACE_OS::sprintf (temp_val, "%s%d", "value", i);
- ACE_OS::sprintf (temp_type, "%s%d", "type", i);
- }
- else
- {
- ACE_OS::sprintf (temp_val, "%s%d", "value", -i);
- ACE_OS::sprintf (temp_type, "%s%d", "type", -i);
- }
-
- ACE_WString val (temp_val);
-
- int resolve_result = ns_context->resolve (w_name, w_value, type_out);
- ACE_ASSERT (resolve_result == result);
- ACE_UNUSED_ARG (resolve_result); // To avoid compile warning
- // with ACE_NDEBUG.
-
- if (w_value.char_rep ())
- {
- ACE_DEBUG ((LM_DEBUG, "Name: %s\tValue: %s\tType: %s\n",
- name, w_value.char_rep (), type_out));
- ACE_ASSERT (w_value == val);
- if (type_out)
- {
- ACE_ASSERT (::strcmp (type_out, temp_type) == 0);
- delete[] type_out;
- }
- }
- }
-}
-
-void do_testing (int argc, char *argv[], int light)
-{
- ACE_Profile_Timer timer;
-
- ACE_Naming_Context ns_context;
- ACE_Name_Options *name_options = ns_context.name_options ();
- name_options->parse_args (argc, argv);
-
- if (light == 0) // Use SYNC
- {
- name_options->database (ACE::basename (name_options->process_name (),
- ACE_DIRECTORY_SEPARATOR_CHAR));
- ns_context.open (ACE_Naming_Context::PROC_LOCAL);
- }
- else // Use NO-SYNC
- {
- const char *p = ACE::basename (name_options->process_name (),
- ACE_DIRECTORY_SEPARATOR_CHAR);
- char s[5 /* strlen ("light") */ + MAXNAMELEN + 1];
- ACE_OS::sprintf (s, "light%s", p);
- name_options->database (s);
- ns_context.open (ACE_Naming_Context::PROC_LOCAL, 1);
- }
-
- // Add bindings to the database
- ACE_DEBUG ((LM_DEBUG, "Binding\n"));
-
- timer.start ();
- bind (&ns_context, 0);
-
- ACE_DEBUG ((LM_DEBUG, "Unbinding\n"));
- unbind (&ns_context, 0);
- timer.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time et;
-
- timer.elapsed_time (et);
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-}
-
-int
-main (int argc, char *argv[])
-{
- // Do testing with SYNC on
- ACE_DEBUG ((LM_DEBUG, "SYNC is ON\n"));
- do_testing (argc, argv, 0);
-
- // Do testing with SYNC off
- ACE_DEBUG ((LM_DEBUG, "SYNC is OFF\n"));
- do_testing (argc, argv, 1);
-
- return 0;
-}
diff --git a/performance-tests/Misc/test_naming.dsp b/performance-tests/Misc/test_naming.dsp
deleted file mode 100644
index 1d91a19f214..00000000000
--- a/performance-tests/Misc/test_naming.dsp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_naming" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_naming - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_naming.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_naming.mak" CFG="test_naming - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_naming - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "test_naming - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "test_naming - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\test_naming\Release"
-# PROP BASE Intermediate_Dir ".\test_naming\Release"
-# PROP BASE Target_Dir ".\test_naming"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_naming"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "test_naming - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\test_naming\Debug"
-# PROP BASE Intermediate_Dir ".\test_naming\Debug"
-# PROP BASE Target_Dir ".\test_naming"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_naming"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "test_naming - Win32 Release"
-# Name "test_naming - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_naming.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/test_singleton.cpp b/performance-tests/Misc/test_singleton.cpp
deleted file mode 100644
index 9e8a50b56e1..00000000000
--- a/performance-tests/Misc/test_singleton.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-// $Id$
-
-// This example illustrates the performance impact of using the
-// Double-Checked Locking pattern compared with using the "standard"
-// practice of acquiring and releasing a lock on every instance()
-// call. In addition, we compare the performance of using the
-// ACE_Singleton (which encapsulates the Double-Check Locking pattern)
-// vs. hand-coding the pattern.
-//
-// Here's the output from running this test on our SPARCstation 20, model 712s.
-//
-// ./test_singleton 1000000
-// iterations = 1000000
-// ACE_Singleton
-// real time = 0.193731 secs, user time = 0.190416 secs, system time = 0.000549 secs
-// time per call = 0.193731 usecs
-// DC_Singleton
-// real time = 0.176208 secs, user time = 0.176045 secs, system time = 0.000092 secs
-// time per call = 0.176208 usecs
-// Mutex_Singleton
-// real time = 3.160998 secs, user time = 3.121434 secs, system time = 0.000109 secs
-// time per call = 3.160998 usecs
-//
-// As you can see, both Double-Checked Locking implementations are about
-// 15 times faster than the standard mutex version. Moreover,
-// this test is run with only a single thread, so there's no contention
-// for the lock. If there were multiple threads contending for the lock,
-// the Mutex_Singleton performance would get increasing worse...
-
-#include "ace/Profile_Timer.h"
-#include "ace/Singleton.h"
-#include "ace/Synch.h"
-#include "ace/Log_Msg.h"
-
-#include "test_singleton.h"
-
-ACE_RCSID(Misc, test_singleton, "$Id$")
-
-#if defined (ACE_HAS_THREADS)
-
-static const int DEFAULT_ITERATIONS = 100000000;
-
-class Mutex_Singleton
-{
-public:
- Mutex_Singleton (void) {}
- void svc (void) {}
- static Mutex_Singleton *instance (void);
-
-private:
- static ACE_Thread_Mutex lock_;
- static Mutex_Singleton *instance_;
-};
-
-ACE_Thread_Mutex Mutex_Singleton::lock_;
-
-Mutex_Singleton *Mutex_Singleton::instance_;
-
-Mutex_Singleton *
-Mutex_Singleton::instance (void)
-{
- // Acquire the lock every time in.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, Mutex_Singleton::lock_, 0);
-
- if (Mutex_Singleton::instance_ == 0)
- ACE_NEW_RETURN (Mutex_Singleton::instance_, Mutex_Singleton, 0);
-
- return Mutex_Singleton::instance_;
-}
-
-ACE_Thread_Mutex DC_Singleton::lock_;
-
-DC_Singleton *DC_Singleton::instance_;
-
-DC_Singleton *
-DC_Singleton::instance (void)
-{
- if (DC_Singleton::instance_ == 0)
- {
- // Only lock if instance_ isn't 0.
- ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, DC_Singleton::lock_, 0);
-
- // Perform the Double-Check.
- if (DC_Singleton::instance_ == 0)
- ACE_NEW_RETURN (DC_Singleton::instance_, DC_Singleton, 0);
- }
-
- return DC_Singleton::instance_;
-}
-
-typedef ACE_Singleton <DC_Singleton, ACE_Thread_Mutex> My_Singleton;
-
-int
-main (int argc, char *argv[])
-{
- ACE_Profile_Timer timer;
- int iterations = argc > 1 ? ACE_OS::atoi (argv[1]) : DEFAULT_ITERATIONS;
- int i;
-
- ACE_DEBUG ((LM_DEBUG, "iterations = %d\n", iterations));
-
- // Test the ACE_Singleton performance (which uses Double-Checked
- // Locking).
-
- timer.start ();
-
- for (i = 0; i < iterations; i++)
- My_Singleton::instance ()->svc ();
-
- timer.stop ();
-
- ACE_Profile_Timer::ACE_Elapsed_Time et;
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "ACE_Singleton\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- // Test the hand-coded Singleton performance (which uses
- // Double-Checked Locking).
-
- timer.start ();
-
- for (i = 0; i < iterations; i++)
- DC_Singleton::instance ()->svc ();
-
- timer.stop ();
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "DC_Singleton\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- // Test the Mutex_Singleton implementation (which does not use
- // Double-Checked Locking).
-
- timer.start ();
-
- for (i = 0; i < iterations; i++)
- Mutex_Singleton::instance ()->svc ();
-
- timer.stop ();
-
- timer.elapsed_time (et);
-
- ACE_DEBUG ((LM_DEBUG, "Mutex_Singleton\n"));
- ACE_DEBUG ((LM_DEBUG, "real time = %f secs, user time = %f secs, system time = %f secs\n",
- et.real_time, et.user_time, et.system_time));
-
- ACE_DEBUG ((LM_DEBUG, "time per call = %f usecs\n",
- (et.real_time / double (iterations)) * 1000000));
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<DC_Singleton, ACE_Thread_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<DC_Singleton, ACE_Thread_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR ((LM_ERROR, "threads not supported on this platform\n"));
- return 0;
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/performance-tests/Misc/test_singleton.dsp b/performance-tests/Misc/test_singleton.dsp
deleted file mode 100644
index a1a4c0f24d1..00000000000
--- a/performance-tests/Misc/test_singleton.dsp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_singleton" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_singleton - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_singleton.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_singleton.mak" CFG="test_singleton - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_singleton - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "test_singleton - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "test_singleton - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\test_singleton\Release"
-# PROP BASE Intermediate_Dir ".\test_singleton\Release"
-# PROP BASE Target_Dir ".\test_singleton"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_singleton"
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "test_singleton - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\test_singleton\Debug"
-# PROP BASE Intermediate_Dir ".\test_singleton\Debug"
-# PROP BASE Target_Dir ".\test_singleton"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_singleton"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "test_singleton - Win32 Release"
-# Name "test_singleton - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_singleton.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/performance-tests/Misc/test_singleton.h b/performance-tests/Misc/test_singleton.h
deleted file mode 100644
index 20dcfd2bf32..00000000000
--- a/performance-tests/Misc/test_singleton.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// $Id$
-
-// Define the DC_Singleton here - it needs to be in a separate file to
-// get picked up correctly on AIX with auto template instantiation using
-// IBM C++ compiler (xlC).
-
-#ifndef __TEST_SINGLETON_H
-#define __TEST_SINGLETON_H
-
-#include "ace/Synch.h"
-
-class DC_Singleton
-{
-public:
- DC_Singleton (void) {}
- void svc (void) {}
- static DC_Singleton *instance (void);
-
-private:
- static ACE_Thread_Mutex lock_;
- static DC_Singleton *instance_;
-};
-
-#endif /* __TEST_SINGLETON_H */