- Clone the
benchmarking
branch from the following fork oftalkyard
.
git clone https://github.com/jirkamarsik/talkyard --branch benchmarking
-
Follow the steps in
talkyard/README.md
to get the application working. -
Import the benchmark reference site into the application:
- First, enable site importing by adding
talkyard.mayImportSite=true
totalkyard/conf/app-dev.conf
and restart the application to make sure the changes have been picked up. - Executing
curl -sS -X POST -H "Content-Type: application/json" -d @benchmark-site.json http://localhost/-/import-site-json
while the application is running. - Search the output of the previous command and take note of the automatically generated name of the imported site (e.g.
http://site--11.localhost
).
- First, enable site importing by adding
-
Build our fork of
wrk
by runningmake
in thewrk
folder. -
Check
graalvmce.patch
andgraalvmee.patch
. These patch files describe how the Dockerfile for the application's Docker image are to be modified so that they use GraalVM CE/EE. You can modify these to test on different versions of GraalVM. Some might usecurl
to download publicly available distributions (such as GraalVM CE) or use theCOPY
command to search for GraalVM on your local filesystem. The latter will require you to copy the GraalVM distribution tarfile intotalkyard/images/app
under the name that is referenced asGRAALVM_TARFILE
in the patch. -
cd
into thetalkyard
application folder and runsudo ../capture-warmup-curves $SITE $OUTDIR
where$SITE
is your site name from step 3 and$OUTDIR
is the folder in which you would like to store the results. (sudo
is required by severaldocker
commands used by the script. Calling the whole command withsudo
avoids the script from repeatedly prompting you for your password.) NB: Running../capture-warmup-curves
will reset the working tree of the current Git project (presumablytalkyard
) as it iterates over the different configurations. -
To generate the charts,
cd
into thecharting
folder and runstack run $OUTDIR
. The.svg
files will be placed in$OUTDIR
. NB: Before you run this command, you might want to change the owner/group of$OUTDIR
as it will likely belong toroot
, sincecapture-warmup-curves
was called withsudo
.