1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
#! /bin/bash
# Usage:
# ./lisp-* <iterations> [<xmlfile>|xmlgen|opcgen] <size>
if [ "$2" == "xmlgen" ]; then
../xmlgen/xmlgen $3 $1
genmode=1
summode=0
elif [ "$2" == "opcgen" ]; then
../xmlgen/opcgen $3 $1
genmode=1
summode=1
elif [ "$2" == "xmark" ]; then
../xmlgen/xmark $3 $1
genmode=1
summode=0
else
genmode=0
summode=0
fi
lang=`basename $0 .sh | cut -d - -f 1`
app=`basename $0 .sh | cut -d - -f 2`
if [ $lang == "lisp" ]; then
script_runner="clisp"
script_args="-C -q -q lisp/$app.cl"
# script_runner="sbcl"
# script_args="--load lisp/$app.cl --end-toplevel-options"
elif [ $lang == "perl" ]; then
script_runner=$lang
script_args="scripts/$app.pl"
elif [ $lang == "python" ]; then
script_runner=$lang
script_args="scripts/$app.py"
else
script_runner=$lang
script_args="scripts/$app.$lang"
fi
# First iteration is called to make initial app. interpretation
# and cache the preprocessed code (if applicable)
if [ $genmode -eq 1 ]; then
$script_runner $script_args 0 | grep -v ^\;
else
$script_runner $script_args 0 $2 | grep -v ^\;
fi
# Here we are measuring time needed to zero-iteration run
# This include script loading time, and etc.
START=$(date +%s.%N)
if [ $genmode -eq 1 ]; then
$script_runner $script_args 0 | grep -v ^\;
else
$script_runner $script_args 0 $2 | grep -v ^\;
fi
END=$(date +%s.%N)
INIT=$(echo "($END - $START)" | bc)
if [ ${INIT:0:1} == "." ]; then
INIT="0$INIT"
fi
# Real Iteration
START=$(date +%s.%N)
if [ $genmode -eq 1 ]; then
$script_runner $script_args $1 | grep -v ^\;
else
$script_runner $script_args $1 $2 | grep -v ^\;
fi
END=$(date +%s.%N)
if [ $summode -eq 1 ]; then
DIFF=$(echo "($END - $START - $INIT)*1000000" | bc)
elif [ $1 -gt 0 ]; then
DIFF=$(echo "($END - $START - $INIT)*1000000/$1" | bc)
else
DIFF=0
fi
#echo $INIT
#DIFF=$(echo "($END - $START)*1000" | bc)
#echo $DIFF
#DIFF=$(echo "($END - $START - $INIT)*1000" | bc)
#echo $DIFF
printf "Execution time: %'.0f us\n" $DIFF
rm -rf ../xml.tmp/
mkdir ../xml.tmp/
|