mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-15 14:20:38 +08:00
be4b0d773c
Summary: There are some settings that apply to dev and prod modes that we don't want to use while benchmarking. E.g. the folder where we store messages, whether we generate long stack traces in our bluebird promises, etc. This diff adds a benchmark mode so that we can change these settings to something that works better for benchmarking. Test Plan: Run locally, verify it works Reviewers: evan, juan, spang Reviewed By: juan, spang Differential Revision: https://phab.nylas.com/D4374
50 lines
1.3 KiB
Bash
50 lines
1.3 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-bench"
|
|
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 run benchmark &> /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
|