-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsingle.sh
More file actions
executable file
·126 lines (84 loc) · 4.64 KB
/
Copy pathsingle.sh
File metadata and controls
executable file
·126 lines (84 loc) · 4.64 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/sh
# git checkout directory name provided as argument
CODE="$1"
# directory where the perf code sits
PERFDIR="$2"
PREF="+%F %T"
cd "$CODE"
date "$PREF git pull (in $CODE)"
git pull >git.log 2>&1
date "$PREF git describe"
git rev-parse --short HEAD | sed 's/^/git commit: /'
date "$PREF autoreconf -fi"
autoreconf -fi >autoreconf.log 2>&1
date "$PREF make clean"
make clean >makeclean.log 2>&1
date "$PREF configure debug"
CONFOPTS="--disable-shared --enable-debug --enable-ipv6 --with-gssapi --enable-werror --with-nghttp2 --prefix=$HOME/test-curl-install --with-openssl --with-ngtcp2 --with-nghttp3 --with-test-caddy=$HOME/caddy/caddy_linux_amd64 --enable-ssls-export --enable-httpsrr --with-test-nghttpx=$HOME/build-nghttp2/bin/nghttpx --with-backtrace --enable-proxy-http3 --enable-httpsig"
./configure $CONFOPTS >configure.log 2>&1
date "$PREF make"
make -sj20 >make.log 2>&1
date "$PREF download 512 MB"
export CURL_MEMDEBUG=curlmem.log
rm "$CURL_MEMDEBUG"
./src/curl -s localhost/512M --out-null
date "$PREF ----- 512 MB download -----"
perl -Itests ./tests/memanalyze.pl -v $CURL_MEMDEBUG | sed 's/^/mem: /'
unset CURL_MEMDEBUG
date "$PREF ----- struct sizes -----"
pahole lib/.libs/libcurl.a -C Curl_easy,Curl_multi,connectdata -s | sed 's/^/structs: /'
date "$PREF make clean again"
make clean >makeclean.log 2>&1
date "$PREF %N configure non-debug"
RELOPTS="--enable-unity --disable-shared --enable-ipv6 --with-gssapi --enable-werror --with-nghttp2 --with-openssl --with-ngtcp2 --with-nghttp3 --with-test-caddy=$HOME/caddy/caddy_linux_amd64 --enable-httpsrr --with-test-nghttpx=$HOME/build-nghttp2/bin/nghttpx --enable-proxy-http3 --enable-httpsig"
./configure $RELOPTS >>configure.log 2>&1
echo "confopts: $RELOPTS";
date "$PREF make non-debug"
make V=1 -sj20 >>make.log 2>&1
date "$PREF %N make -C tests"
make -C tests -sj20 >maketests.log 2>&1
date "$PREF curl -V"
./src/curl -V 2>&1 | sed 's/^/curl-V: /'
date "$PREF ----- 100G download -----"
./src/curl -s localhost/100G -w 'bytes/sec: %{speed_download}\ntotal time: %{time_total}\n' --out-null | sed 's/^/100G: /'
date "$PREF ----- h1 parallel -----"
python3 tests/http/scorecard.py -d --download-count=100 --download-parallel=50 --download-sizes=500mb --json h1 2>h1p.log | sed 's/^/h1p: /'
date "$PREF ----- h2 parallel -----"
python3 tests/http/scorecard.py -d --download-count=100 --download-parallel=50 --download-sizes=500mb --json h2 2>h2p.log | sed 's/^/h2p: /'
date "$PREF ----- h3 parallel -----"
python3 tests/http/scorecard.py -d --download-count=100 --download-parallel=50 --download-sizes=500mb --json h3 2>h3p.log | sed 's/^/h3p: /'
date "$PREF ----- h1 parallel upload -----"
python3 tests/http/scorecard.py -u --upload-count=100 --upload-parallel=50 --upload-sizes=500mb --json h1 2>h1pu.log | sed 's/^/h1pu: /'
date "$PREF ----- h2 parallel upload -----"
python3 tests/http/scorecard.py -u --upload-count=100 --upload-parallel=50 --upload-sizes=500mb --json h2 2>h2pu.log | sed 's/^/h2pu: /'
date "$PREF ----- h3 parallel upload -----"
python3 tests/http/scorecard.py -u --upload-count=100 --upload-parallel=50 --upload-sizes=500mb --httpd --json h3 2>h3pu.log | sed 's/^/h3pu: /'
date "$PREF ----- h1 requests -----"
python3 tests/http/scorecard.py -r --request-count=100000 --request-parallel=40 --json h1 | sed 's/^/h1req: /'
date "$PREF ----- h2 requests -----"
python3 tests/http/scorecard.py -r --request-count=100000 --request-parallel=40 --json h2 | sed 's/^/h2req: /'
date "$PREF ----- h3 requests -----"
python3 tests/http/scorecard.py -r --request-count=100000 --request-parallel=40 --json h3 | sed 's/^/h3req: /'
date "$PREF ----- limit-rate -----"
python3 tests/http/scorecard.py -d --download-count=20 --download-parallel=20 --download-sizes=100mb --limit-rate 5000K --json h1 | sed 's/^/h1rate: /'
date "$PREF ----- base64 encode -----"
./tests/perf/perf base64enc | sed 's/^/b64enc: /'
date "$PREF ----- base64 decode -----"
./tests/perf/perf base64dec | sed 's/^/b64dec: /'
date "$PREF ----- snprintf -----"
./tests/perf/perf snprintf | sed 's/^/snprintf: /'
date "$PREF ----- maprintf -----"
./tests/perf/perf maprintf | sed 's/^/maprintf: /'
date "$PREF ----- simplef -----"
./tests/perf/perf simpleformat | sed 's/^/simplef: /'
date "$PREF ----- URL parser -----"
./tests/perf/perf urlparser 2500 | sed 's/^/urlparser: /'
date "$PREF ----- URL encode -----"
./tests/perf/perf urlencode | sed 's/^/urlenc: /'
date "$PREF ----- URL decode -----"
./tests/perf/perf urldecode | sed 's/^/urldec: /'
date "$PREF ----- date parser -----"
./tests/perf/perf dateparser | sed 's/^/dateparser: /'
date "$PREF ----- number parser -----"
./tests/perf/perf numparser | sed 's/^/numparser: /'
date "$PREF done"