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