parent
4aac097566
commit
4c1c6f0ff4
@ -0,0 +1,5 @@
|
|||||||
|
*.pnm
|
||||||
|
*.png
|
||||||
|
*.csv
|
||||||
|
*.txt
|
||||||
|
*.log
|
@ -0,0 +1,7 @@
|
|||||||
|
# OCR varied by word
|
||||||
|
|
||||||
|
Generates pnm image files containing random words from the wamerican dictionary.
|
||||||
|
|
||||||
|
The number of words are varied between 1, 10, 100 in order to assess how the size of text OCRed affects the execution profile of the sandbox serving the request.
|
||||||
|
|
||||||
|
Run `install.sh` to install required tools and `run.sh` to run the tests.
|
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Executes the runtime in GDB
|
||||||
|
# Substitutes the absolute path from the container with a path relatively derived from the location of this script
|
||||||
|
# This allows debugging outside of the Docker container
|
||||||
|
# Also disables pagination and stopping on SIGUSR1
|
||||||
|
|
||||||
|
experiment_directory=$(pwd)
|
||||||
|
project_directory=$(cd ../../.. && pwd)
|
||||||
|
binary_directory=$(cd "$project_directory"/bin && pwd)
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH="$binary_directory:$LD_LIBRARY_PATH"
|
||||||
|
export PATH="$binary_directory:$PATH"
|
||||||
|
|
||||||
|
gdb --eval-command="handle SIGUSR1 nostop" \
|
||||||
|
--eval-command="handle SIGPIPE nostop" \
|
||||||
|
--eval-command="set pagination off" \
|
||||||
|
--eval-command="set substitute-path /sledge/runtime $project_directory" \
|
||||||
|
--eval-command="run $experiment_directory/spec.json" \
|
||||||
|
sledgert
|
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Installs the deps needed for run.sh
|
||||||
|
sudo apt-get install netpbm pango1.0-tools wamerican
|
@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Executes the runtime in GDB
|
||||||
|
# Substitutes the absolute path from the container with a path relatively derived from the location of this script
|
||||||
|
# This allows debugging outside of the Docker container
|
||||||
|
# Also disables pagination and stopping on SIGUSR1
|
||||||
|
|
||||||
|
experiment_directory=$(pwd)
|
||||||
|
project_directory=$(cd ../../.. && pwd)
|
||||||
|
binary_directory=$(cd "$project_directory"/bin && pwd)
|
||||||
|
log="$experiment_directory/log.csv"
|
||||||
|
|
||||||
|
if [ "$1" != "-d" ]; then
|
||||||
|
SLEDGE_SANDBOX_PERF_LOG=$log PATH="$binary_directory:$PATH" LD_LIBRARY_PATH="$binary_directory:$LD_LIBRARY_PATH" sledgert "$experiment_directory/spec.json" >rt.log 2>&1 &
|
||||||
|
sleep 2
|
||||||
|
else
|
||||||
|
echo "Running under gdb"
|
||||||
|
fi
|
||||||
|
|
||||||
|
word_count=100
|
||||||
|
fonts=("mono" "URW Gothic" "Lobster Two")
|
||||||
|
total_count=100
|
||||||
|
|
||||||
|
for ((i = 1; i <= total_count; i++)); do
|
||||||
|
echo "Test $i"
|
||||||
|
words="$(shuf -n"$word_count" /usr/share/dict/american-english)"
|
||||||
|
|
||||||
|
for font in "${fonts[@]}"; do
|
||||||
|
# For whatever reason, templating in multiple word strips was a pain, so brute forcing
|
||||||
|
case "$font" in
|
||||||
|
"mono")
|
||||||
|
echo "Mono"
|
||||||
|
pango-view --font="mono" -qo mono_words.png -t "$words"
|
||||||
|
pngtopnm mono_words.png >mono_words.pnm
|
||||||
|
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @mono_words.pnm localhost:10000 2>/dev/null)
|
||||||
|
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
|
||||||
|
;;
|
||||||
|
"URW Gothic")
|
||||||
|
echo "URW Gothic"
|
||||||
|
pango-view --font="URW Gothic" -qo URW_Gothic_words.png -t "$words"
|
||||||
|
pngtopnm URW_Gothic_words.png >URW_Gothic_words.pnm
|
||||||
|
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @URW_Gothic_words.pnm localhost:10002 2>/dev/null)
|
||||||
|
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
|
||||||
|
;;
|
||||||
|
"Lobster Two")
|
||||||
|
echo "Lobster Two"
|
||||||
|
pango-view --font="Lobster Two" -qo Lobster_Two_words.png -t "$words"
|
||||||
|
pngtopnm Lobster_Two_words.png >Lobster_Two_words.pnm
|
||||||
|
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Lobster_Two_words.pnm localhost:10001 2>/dev/null)
|
||||||
|
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
echo "==============================================="
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$1" != "-d" ]; then
|
||||||
|
sleep 2
|
||||||
|
echo -n "Running Cleanup: "
|
||||||
|
rm ./*.png ./*.pnm
|
||||||
|
pkill --signal sigterm sledgert >/dev/null 2>/dev/null
|
||||||
|
sleep 2
|
||||||
|
pkill sledgert -9 >/dev/null 2>/dev/null
|
||||||
|
echo "[DONE]"
|
||||||
|
fi
|
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_mono",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10000,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_urw_gothic",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10001,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_lobster_2",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10002,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
*.pnm
|
||||||
|
*.png
|
||||||
|
*.csv
|
||||||
|
*.txt
|
||||||
|
*.log
|
@ -0,0 +1,7 @@
|
|||||||
|
# OCR varied by word
|
||||||
|
|
||||||
|
Generates pnm image files containing random words from the wamerican dictionary.
|
||||||
|
|
||||||
|
The number of words are varied between 1, 10, 100 in order to assess how the size of text OCRed affects the execution profile of the sandbox serving the request.
|
||||||
|
|
||||||
|
Run `install.sh` to install required tools and `run.sh` to run the tests.
|
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Executes the runtime in GDB
|
||||||
|
# Substitutes the absolute path from the container with a path relatively derived from the location of this script
|
||||||
|
# This allows debugging outside of the Docker container
|
||||||
|
# Also disables pagination and stopping on SIGUSR1
|
||||||
|
|
||||||
|
experiment_directory=$(pwd)
|
||||||
|
project_directory=$(cd ../../.. && pwd)
|
||||||
|
binary_directory=$(cd "$project_directory"/bin && pwd)
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH="$binary_directory:$LD_LIBRARY_PATH"
|
||||||
|
export PATH="$binary_directory:$PATH"
|
||||||
|
|
||||||
|
gdb --eval-command="handle SIGUSR1 nostop" \
|
||||||
|
--eval-command="handle SIGPIPE nostop" \
|
||||||
|
--eval-command="set pagination off" \
|
||||||
|
--eval-command="set substitute-path /sledge/runtime $project_directory" \
|
||||||
|
--eval-command="run $experiment_directory/spec.json" \
|
||||||
|
sledgert
|
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Installs the deps needed for run.sh
|
||||||
|
sudo apt-get install netpbm pango1.0-tools wamerican
|
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Executes the runtime in GDB
|
||||||
|
# Substitutes the absolute path from the container with a path relatively derived from the location of this script
|
||||||
|
# This allows debugging outside of the Docker container
|
||||||
|
# Also disables pagination and stopping on SIGUSR1
|
||||||
|
|
||||||
|
experiment_directory=$(pwd)
|
||||||
|
project_directory=$(cd ../../.. && pwd)
|
||||||
|
binary_directory=$(cd "$project_directory"/bin && pwd)
|
||||||
|
log="$experiment_directory/log.csv"
|
||||||
|
|
||||||
|
if [ "$1" != "-d" ]; then
|
||||||
|
SLEDGE_SANDBOX_PERF_LOG=$log PATH="$binary_directory:$PATH" LD_LIBRARY_PATH="$binary_directory:$LD_LIBRARY_PATH" sledgert "$experiment_directory/spec.json" >rt.log 2>&1 &
|
||||||
|
sleep 2
|
||||||
|
else
|
||||||
|
echo "Running under gdb"
|
||||||
|
fi
|
||||||
|
|
||||||
|
word_count=100
|
||||||
|
dpis=(72 108 144)
|
||||||
|
|
||||||
|
declare -A dpi_to_port
|
||||||
|
dpi_to_port[72]=10000
|
||||||
|
dpi_to_port[108]=10001
|
||||||
|
dpi_to_port[144]=10002
|
||||||
|
|
||||||
|
total_count=100
|
||||||
|
|
||||||
|
for ((i = 0; i < total_count; i++)); do
|
||||||
|
echo "$i"
|
||||||
|
words="$(shuf -n"$word_count" /usr/share/dict/american-english)"
|
||||||
|
|
||||||
|
for dpi in "${dpis[@]}"; do
|
||||||
|
echo "${dpi}"_dpi.pnm
|
||||||
|
pango-view --dpi=$dpi --font=mono -qo "${dpi}"_dpi.png -t "$words"
|
||||||
|
pngtopnm "${dpi}"_dpi.png >"${dpi}"_dpi.pnm
|
||||||
|
|
||||||
|
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @"${dpi}"_dpi.pnm localhost:${dpi_to_port[$dpi]} 2>/dev/null)
|
||||||
|
|
||||||
|
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
|
||||||
|
echo "==============================================="
|
||||||
|
done
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$1" != "-d" ]; then
|
||||||
|
sleep 2
|
||||||
|
echo -n "Running Cleanup: "
|
||||||
|
rm ./*.png ./*.pnm
|
||||||
|
pkill --signal sigterm sledgert >/dev/null 2>/dev/null
|
||||||
|
sleep 2
|
||||||
|
pkill sledgert -9 >/dev/null 2>/dev/null
|
||||||
|
echo "[DONE]"
|
||||||
|
fi
|
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_72_dpi",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10000,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_108_dpi",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10001,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": "yes",
|
||||||
|
"name": "gocr_144_dpi",
|
||||||
|
"path": "gocr_wasm.so",
|
||||||
|
"port": 10002,
|
||||||
|
"relative-deadline-us": 50000000000,
|
||||||
|
"argsize": 1,
|
||||||
|
"http-req-headers": [],
|
||||||
|
"http-req-content-type": "text/plain",
|
||||||
|
"http-req-size": 5335057,
|
||||||
|
"http-resp-headers": [],
|
||||||
|
"http-resp-size": 5335057,
|
||||||
|
"http-resp-content-type": "text/plain"
|
||||||
|
}
|
Loading…
Reference in new issue