mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-10 10:11:25 +08:00
f629818075
Summary: We created the process so we can also kill it with no problems. This makes it easier to automatically run benchmarks without human intervention. Test Plan: Run locally Reviewers: spang, evan, juan Reviewed By: juan Differential Revision: https://phab.nylas.com/D4332
50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function print_help {
|
|
OUTPUT=$(cat <<- EOM
|
|
|
|
A script to benchmark the initial sync performance of Nylas Mail. To use,
|
|
simply run the script after authing whatever accounts you wish to measure
|
|
in your development version of Nylas Mail. The benchmarking script will
|
|
clear all of the data except for your accounts and open and close Nylas
|
|
Mail several times, printing out the number of messages synced after each
|
|
iteration.
|
|
)
|
|
echo "$OUTPUT"
|
|
}
|
|
|
|
if [[ $1 == '-h' || $1 == '--help' ]]
|
|
then
|
|
print_help
|
|
exit 0
|
|
fi
|
|
|
|
CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
NYLAS_DIR="$HOME/.nylas-dev"
|
|
EDGEHILL_DB="$NYLAS_DIR/edgehill.db"
|
|
TIME_LIMIT=120
|
|
ITERS=5
|
|
|
|
for i in `seq 1 $ITERS`
|
|
do
|
|
bash $CWD/drop-data-except-accounts.sh > /dev/null
|
|
|
|
(npm start &> /dev/null &)
|
|
|
|
sleep $TIME_LIMIT
|
|
|
|
ELECTRON_PID=`ps aux | grep "Electron packages/client-app" | grep -v grep | awk '{print $2}'`
|
|
kill -9 $ELECTRON_PID
|
|
|
|
MESSAGE_COUNT=`sqlite3 $EDGEHILL_DB 'SELECT COUNT(*) FROM Message'`
|
|
echo "Synced Messages: $MESSAGE_COUNT"
|
|
|
|
# Sometimes it takes a while to shutdown
|
|
while [[ $ELECTRON_PID != '' ]]
|
|
do
|
|
sleep 1
|
|
ELECTRON_PID=`ps aux | grep "Electron packages/client-app" | grep -v grep | awk '{print $2}'`
|
|
done
|
|
done
|