Historical interest only: benchmarking scripts for various NC/Minimart/Prospect/Syndicate implementations. Mostly active during my PhD research.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Tony Garnock-Jones 070bea7c8e plain-racket-server-semi-threaded.rkt 2 years ago
.gitignore Update .gitignore 7 years ago
Makefile uvserver 7 years ago
README.md imperative-syndicate versions 3 years ago
broadcast-latency-imperative-syndicate.rkt Fix kickoff 3 years ago
broadcast-latency-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 3 years ago
echo-client.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 6 years ago
echo-server-imperative-syndicate-tcp-driver.rkt Fix echo-server-imperative-syndicate-tcp-driver.rkt 2 years ago
echo-server-minimart-tcp-driver.rkt Prospect echo server, and various fixes to get older experiments running again 6 years ago
echo-server-syndicate-tcp-driver.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 3 years ago
echo-server.rkt Adjust TCP listen backlog for non-TCP-driver minimart variant, too. 6 years ago
echoserver.erl Report connection counts 7 years ago
exploring-curve-shapes.rkt Explore possible curve hypotheses 6 years ago
external-latency.rkt plain-racket-server-semi-threaded.rkt 2 years ago
internal-latency-imperative-syndicate.rkt Fix kickoff 3 years ago
internal-latency-symbols-not-fixnums.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 6 years ago
internal-latency-syndicate.rkt Fix internal-latency-syndicate.rkt 2 years ago
internal-latency.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 6 years ago
latest-results.html observe-all-* and sum-all-* experiments 6 years ago
measure-hash.rkt Measure datastructure per-entry sizes 7 years ago
measure-routes.rkt Rename "matcher" to "trie". 5 years ago
observe-all-imperative-syndicate.rkt imperative-syndicate versions 3 years ago
observe-all-minimart.rkt Use time-apply rather than current-inexact-milliseconds 6 years ago
observe-all-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 3 years ago
observe-some-imperative-syndicate.rkt imperative-syndicate versions 3 years ago
observe-some-minimart.rkt Scale up to 4000 for observe-some-* 6 years ago
observe-some-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 3 years ago
pingpong.erl Noddy pingpong tests of erlang and plain racket thread IPC 7 years ago
pingpong.rkt Noddy pingpong tests of erlang and plain racket thread IPC 7 years ago
plain-racket-server-evt.rkt Reenable auxiliary stats for racket-evt 2 years ago
plain-racket-server-semi-threaded.rkt plain-racket-server-semi-threaded.rkt 2 years ago
plain-racket-server.rkt Increase TCP listen connection backlog, for parity with prospect TCP driver 6 years ago
run-all.sh Add racket-evt to run-all.sh 2 years ago
run-erlang-server.sh Add options (nicked from rabbitmq-server's startup scripts) that unbork Erlang performance 7 years ago
sum-all-imperative-syndicate.rkt imperative-syndicate versions 3 years ago
sum-all-minimart.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 6 years ago
sum-all-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 3 years ago
uvserver.c Fix uvserver shutdown procedure. 3 years ago

README.md

Measuring NC Implementation Characteristics

  • external-latency.rkt is the driver for the roundtrip latency "echo" programs. Generally speaking, statistics for each run will be recorded into "client-grow-times", "client-ping-times" and "client-summary" tables. When the server for a run is written in Racket, additional statistics will be collected into tables "server-memory-use" and "server-connections".

    • echo-client.rkt measures roundtrip latency of pinging a remote server
    • echoserver.erl is a matching ping server in Erlang
    • echo-server-minimart-tcp-driver.rkt is a server using Minimart's TCP driver
    • echo-server-prospect-tcp-driver.rkt is a server using Prospect's TCP driver
    • echo-server-imperative-syndicate-tcp-driver.rkt is a server using Imperative Syndicate's TCP driver
    • echo-server.rkt is a server using Minimart, but eschewing the TCP driver
    • plain-racket-server.rkt is a server using built-in Racket threads
    • uvserver.c is a server written in C with libuv
  • internal-latency.rkt measures roundtrip latency of pinging a local peer in a Minimart world.

    • internal-latency-symbols-not-fixnums.rkt is the same, but uses symbols instead of fixnums to identify peers.
    • internal-latency-prospect.rkt is the same, but using Prospect instead of Minimart.
    • internal-latency-imperative-syndicate.rkt is the same, but using Imperative Syndicate instead of Minimart.
  • observe-all-minimart.rkt, observe-all-prospect.rkt, observe-all-imperative-syndicate.rkt, sum-all-minimart.rkt, sum-all-prospect.rkt, and sum-all-imperative-syndicate.rkt measure the costs of presence notification and processing in Minimart, Prospect, and Imperative Syndicate worlds, respectively.

  • pingpong.rkt and pingpong.erl are simple measurements of Racket's and Erlang's built-in thread communication latency, respectively. They do not use the racket-logger statistics-collection subsystem, instead printing their results to stdout.