Skip to content
Setup for running benchmarks against Talkyard and measuring the JavaScript performance
Haskell Shell Lua
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
charting
wrk @ 3921e8e
.gitignore
.gitmodules
README.md
benchmark-site.json
capture-warmup-curves
collect-live-latency.lua
graaljs.patch
graalvmce.patch
graalvmee.patch
sysctl.conf
wait-until-idle

README.md

Collecting data for the warmup curve charts

  1. Clone the benchmarking branch from the following fork of talkyard.
git clone https://github.com/jirkamarsik/talkyard --branch benchmarking
  1. Follow the steps in talkyard/README.md to get the application working.

  2. Import the benchmark reference site into the application:

    1. First, enable site importing by adding talkyard.mayImportSite=true to talkyard/conf/app-dev.conf and restart the application to make sure the changes have been picked up.
    2. Executing curl -sS -X POST -H "Content-Type: application/json" -d @benchmark-site.json http://localhost/-/import-site-json while the application is running.
    3. 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).
  3. Build our fork of wrk by running make in the wrk folder.

  4. Check graalvmce.patch and graalvmee.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 use curl to download publicly available distributions (such as GraalVM CE) or use the COPY command to search for GraalVM on your local filesystem. The latter will require you to copy the GraalVM distribution tarfile into talkyard/images/app under the name that is referenced as GRAALVM_TARFILE in the patch.

  5. cd into the talkyard application folder and run sudo ../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 several docker commands used by the script. Calling the whole command with sudo 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 (presumably talkyard) as it iterates over the different configurations.

  6. To generate the charts, cd into the charting folder and run stack 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 to root, since capture-warmup-curves was called with sudo.

You can’t perform that action at this time.