Cleanup ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE, all platforms support it so far as I can...
[ACE_TAO.git] / ACE / performance-tests / Synch-Benchmarks / README
blobc285414acfebbbb7a781dd8f504fbf12b3d16233
3 This directory contains a program for benchmarking various
4 synchronization and concurrent programming mechanisms in ACE.
6 To build the program, do a make on the top level Makefile (or,
7 on NT, open Synch_Tests.dsw and build evey project in it.)
8 There are several modules which perform different benchmarking
9 measurements in subdirectories.  Here is a short description of all
10 the subdirectories:
12   Synch_lib:    This directory contains interface definitions required
13                 by both main program (synch_driver) and other modules.
14   Base_Test:    This directory contains a set of baseline tests.  They
15                 measure the time to obtain a lock without contension,
16                 or trying to objtain a lock with contension.
17   Perf_Test:    This directory contains a set of performance tests.
18                 They measure the opeation performed by spawning a
19                 bunch of threads and let these threads compete with
20                 each other in obtaining a lock.
22 There'll always be a "Method" object in each module subdirectory.
23 They defines the method used in benchmarking and usually takes some
24 options which can be defined in the 'svc.conf' file.  Beside from this
25 "Method" object, there are also a lot of "Test" objects that define
26 the mechanism to be tested.
28 Executing the program:  the synch_driver performs various benchmarking
29 according to the "script" defined in 'svc.conf' file.  All command
30 line options applicable to ACE's Service_Config class can be used.
32 The entries in svc.conf file are always in groups.  Each group
33 consists of several svc.conf entries.  The first entry in each group
34 is the "Method" entry which defines the methodology used in the test.
35 The rest of the entries are "Test" entries which define the mechanism
36 to be test using the "Method".
38 At this moment, you can not have entries with the same object (either
39 "Method" object or "Test" object) in one svc.conf file.  Therefore, at
40 this moment, there can only be two groups in the svc.conf.  Of them,
41 each "Test" can only be performed once.  Therefore, there's no way to
42 benchmark using the same method with differnt configurations within
43 the same svc.conf file.  However, this can be easily overcome by
44 defining multiple svc.conf files and invoking the synch_driver with
45 different svc.conf file.
47 There'll be more detailed description about how a "Method" object can
48 be configured in respective subdirectory.