Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2002:
[Freeciv-Dev] Timing tool
Home

[Freeciv-Dev] Timing tool

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Timing tool
From: Raimar Falke <hawk@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 5 Apr 2002 17:45:43 +0200
Reply-to: rf13@xxxxxxxxxxxxxxxxxxxxxx

Attached is a first version of a script which should allow us to
easily measure performance. I wrote it in python but sh or perl should
also be possible. The basic program is test_one.py. You can see
possible uses in test.sh. It does:
 - copy the base tree
 - apply any patches
 - call the configure command
 - call make
 - do <runs> autogames
 - check if the savegames are equal
 - create some plots
 - it also handles profiling (just add -p and it will add -pg and run
 gprof for each run)

All the results are put into a new directory <name>. There is a
sub-dir for every run. A sample result dir may look like this:

.
|-- configure_command.out
|-- report
|-- run_00
|   |-- civgame+0001.sav.gz
|   |-- civgame+0020.sav.gz
|   |-- civgame-0250.sav.gz
|   |-- civgame-0500.sav.gz
|   |-- civgame-0750.sav.gz
|   |-- civgame-1000.sav.gz
|   |-- civgame-1500.sav.gz
|   |-- civgame-2000.sav.gz
|   |-- civgame-2500.sav.gz
|   |-- civgame-3000.sav.gz
|   |-- civgame-3500.sav.gz
|   |-- gamelog
|   `-- log
|-- run_01
|   |-- civgame+0001.sav.gz
|   |-- civgame+0020.sav.gz
|   |-- civgame-0250.sav.gz
|   |-- civgame-0500.sav.gz
|   |-- civgame-0750.sav.gz
|   |-- civgame-1000.sav.gz
|   |-- civgame-1500.sav.gz
|   |-- civgame-2000.sav.gz
|   |-- civgame-2500.sav.gz
|   |-- civgame-3000.sav.gz
|   |-- civgame-3500.sav.gz
|   |-- gamelog
|   `-- log
|-- run_02
|   |-- civgame+0001.sav.gz
|   |-- civgame+0020.sav.gz
|   |-- civgame-0250.sav.gz
|   |-- civgame-0500.sav.gz
|   |-- civgame-0750.sav.gz
|   |-- civgame-1000.sav.gz
|   |-- civgame-1500.sav.gz
|   |-- civgame-2000.sav.gz
|   |-- civgame-2500.sav.gz
|   |-- civgame-3000.sav.gz
|   |-- civgame-3500.sav.gz
|   |-- gamelog
|   `-- log
|-- startup.final
|-- system.png
|-- system.times
|-- user.png
|-- user.times
|-- wall.png
`-- wall.times

The file "report" contains all relevant data to repeat the experiment
and also the timing results.

Sample report:

<begin quote>
Name:              O2_no_CHECK_MAP_POS
Runs:              3
Base-tree:         /mnt/hdb7/hawk/freeciv/new
RC-template:       /mnt/hdb7/hawk/freeciv/test/rc.templ
Configure command: /mnt/hdb7/hawk/freeciv/test/conf
Profile:           0
CFLAGS:            -g -O2 -Wall
CPPFLAGS:          

Patches:
  /mnt/hdb7/hawk/freeciv/disable_CHECK_MAP_POS.diff applied with -p0

Configure command:
---START /mnt/hdb7/hawk/freeciv/test/conf---
#!/bin/sh

./configure --enable-client=no
---END---
  w=21.98s, s=3.86s, u=16.15s

Make:
  w=152.05s, s=7.1s, u=138.87s

Startup script:
---START /mnt/hdb7/hawk/freeciv/test/rc.templ---
set randseed 4321
set seed 1234
set aifill 7
hard
set endyear 1
#set saveturns 1
---END---
---START /mnt/hdb7/hawk/freeciv/test/O2_no_CHECK_MAP_POS/startup.final---
set randseed 4321
set seed 1234
set aifill 7
hard
set endyear 1
#set saveturns 1

set timeout -1
set savename civgame
set gamelog 40
create Caesar
start
---END---

Runs:
  0: w=80.27s, s=0.23s, u=76.34s
  1: w=78.95s, s=0.16s, u=75.99s
  2: w=79.07s, s=0.13s, u=76.25s

Average wall time: 79.430000
Average system time: 0.173333
Average user time: 76.193333
Savegames are equal

<end quote>

TODO:
 - add scripts which do the plots and savegame comparison for multiple
 settings
 - remove bugs

I haven't stressed it a lot since the runs are pretty time
intensive. But it should be usable.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "> WHY?! Isn't it better to put $(shell cat cscope.files) on the list of
  I only have a yellow belt in makefile kungfu.  These fancy gnu make things
  are relatively new to some of us..."
    -- Mark Frazer to Vassilii Khachaturov in linux-kernel

Attachment: test.sh
Description: Bourne shell script

Attachment: conf
Description: Text document

Attachment: rc.templ
Description: Text document

Attachment: disable_CHECK_MAP_POS.diff
Description: Text document

Attachment: test_one.py
Description: Text document


[Prev in Thread] Current Thread [Next in Thread]