Skip to content

derekjw/akka-sample-trading

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trading Sample with Scala and Akka.

Including performance benchmark test described in blog: http://blog.jayway.com/2010/08/10/yet-another-akka-benchmark/

=== Latest Results ===

* 1.0-M1
With order matching: http://goo.gl/EsUwr
Without order matching: http://goo.gl/UOCd2
Comparing with previous: http://goo.gl/eaoOC


=== How to run benchmark from distribution ===

Download and unzip distribution assembly from http://github.com/patriknw/akka-sample-trading/downloads
The zip contains all jar files, including necessary dependencies.

In the scripts directory of the distribution there is a run_benchmark.sh script that can be used to launch tests.

Argument to the script is the junit test class or classes to run.
./run_benchmark.sh org.samples.trading.akka.AkkaPerformanceTest

There is also a script for running all benchmark tests.
./run_all_benchmarks.sh

You need to define JAVA_HOME for JDK6, if you don't have it as default.

Benchmark options can be defined with variable:
export BENCH_PROPS='-DuseTxLogFile=false -Dbenchmark=true -DminClients=1 -DmaxClients=40 -DuseDummyOrderbook=false'

Better accuracy (running tests longer) is achieved if you define jvm parameter:
-Dbenchmark=true

By default the benchmark is run without transaction logging, you can use transaction logging by defining jvm parameter:
-DuseTxLogFile=true

By default the benchmark is run with 1 to 40 client threads, you can define another range with jvm parameters:
-DminClients=2 -DmaxClients=6

To push the message passing to the limits, the order matching logic can be turned off with jvm parameter:
-DuseDummyOrderbook=true

To control how long the tests are running you can define repeatFactor, default is 50 when benchmark=true:
-DrepeatFactor=100

To control the length of the warmup period you can define warmupRepeatFactor, default is 100 when benchmark=true:
-DwarmupRepeatFactor=200

To avoid timeouts when running the benchmarks under circumstances where execution is slowed (e.g., when using an invasive profiler) you can define timeDilation, default is 1 (higher values increase the timeout):
-DtimeDilation=1


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 94.9%
  • Shell 3.7%
  • Java 1.4%