README for PolyORB benchmarking
===============================

This file details the organization of the benchmark suite for the
PolyORB/CORBA personality.

I. Compiling tests
------------------

1/ Editing Makefile to set compilation options and IDL-to-Ada compiler
   name and flags.

For iac, it is recommended to use "-hc -rs" for maximum performance.

Note: it is assumed PolyORB tools (idlac, iac, polyorb-config) and
gnatmake are in the PATH.

2/ Edit bench_utils, if required, to configure benchmark timeouts and
   threshold (see bench_utils.ads for details).

2/ Compile

II. Running tests
-----------------

1/ Run server_no_tasking and then client with server's IOR

2/ After the test completes, a set of .data files store the
   performance measurements for each test. See bench_utils.ads for its
   format.

3/ A GNUPlot script is available and allow for turning the performance
   measures into a graph, run it with "gnuplot print_data.gnuplot".

If a performance decrease is measured, the corresponding test is
flagged as failed. This can be reported by e.g. PolyORB test driver to
detect any performance regression

For more details on types tested, see benchs.idl

III. Directory structure
------------------------

benchs.idl : IDL 

benchs-impl.ad? : implementation files for benchs.idl methods

bench_utils.ad? : utility functions to do some benchmarking on
		  functions

client.adb : client of benchs.idl

Makefile : compilation of tests

polyorb.conf : parameter tuning of the application

print_data.gnuplot: GNUPlot script to display value

server_common.ad? : common routines to set up a benchs server

server_no_tasking.adb : server using the no tasking profile of PolyORB

server_thread_pool.adb: server using a threadpool
