Historical interest only: benchmarking scripts for various NC/Minimart/Prospect/Syndicate implementations. Mostly active during my PhD research.
Go to file
Tony Garnock-Jones 070bea7c8e plain-racket-server-semi-threaded.rkt 2019-06-21 15:12:19 +01:00
.gitignore Update .gitignore 2014-05-14 17:13:20 -04:00
Makefile uvserver 2014-05-05 12:04:42 -04:00
README.md imperative-syndicate versions 2018-04-29 23:16:07 +01:00
broadcast-latency-imperative-syndicate.rkt Fix kickoff 2018-04-30 12:28:14 +01:00
broadcast-latency-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 2018-04-30 11:20:10 +01:00
echo-client.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 2015-03-21 20:51:50 -04:00
echo-server-imperative-syndicate-tcp-driver.rkt Fix echo-server-imperative-syndicate-tcp-driver.rkt 2019-06-21 14:40:38 +01:00
echo-server-minimart-tcp-driver.rkt Prospect echo server, and various fixes to get older experiments running again 2015-03-18 17:13:36 -04:00
echo-server-syndicate-tcp-driver.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 2018-04-30 11:20:10 +01:00
echo-server.rkt Adjust TCP listen backlog for non-TCP-driver minimart variant, too. 2015-03-18 21:28:58 -04:00
echoserver.erl Report connection counts 2014-05-05 12:20:07 -04:00
exploring-curve-shapes.rkt Explore possible curve hypotheses 2015-03-22 18:49:48 -04:00
external-latency.rkt plain-racket-server-semi-threaded.rkt 2019-06-21 15:12:19 +01:00
internal-latency-imperative-syndicate.rkt Fix kickoff 2018-04-30 12:28:14 +01:00
internal-latency-symbols-not-fixnums.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 2015-03-21 20:51:50 -04:00
internal-latency-syndicate.rkt Fix internal-latency-syndicate.rkt 2019-06-21 14:42:21 +01:00
internal-latency.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 2015-03-21 20:51:50 -04:00
latest-results.html observe-all-* and sum-all-* experiments 2015-03-19 01:25:59 -04:00
measure-hash.rkt Measure datastructure per-entry sizes 2014-05-06 21:13:18 -04:00
measure-routes.rkt Rename "matcher" to "trie". 2016-01-21 22:00:42 -05:00
observe-all-imperative-syndicate.rkt imperative-syndicate versions 2018-04-29 23:16:07 +01:00
observe-all-minimart.rkt Use time-apply rather than current-inexact-milliseconds 2015-06-18 16:39:13 -04:00
observe-all-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 2018-04-30 11:20:10 +01:00
observe-some-imperative-syndicate.rkt imperative-syndicate versions 2018-04-29 23:16:07 +01:00
observe-some-minimart.rkt Scale up to 4000 for observe-some-* 2015-06-19 21:23:50 -04:00
observe-some-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 2018-04-30 11:20:10 +01:00
pingpong.erl Noddy pingpong tests of erlang and plain racket thread IPC 2014-05-14 17:13:02 -04:00
pingpong.rkt Noddy pingpong tests of erlang and plain racket thread IPC 2014-05-14 17:13:02 -04:00
plain-racket-server-evt.rkt Reenable auxiliary stats for racket-evt 2019-06-21 14:47:53 +01:00
plain-racket-server-semi-threaded.rkt plain-racket-server-semi-threaded.rkt 2019-06-21 15:12:19 +01:00
plain-racket-server.rkt Increase TCP listen connection backlog, for parity with prospect TCP driver 2015-03-18 19:04:03 -04:00
run-all.sh Add racket-evt to run-all.sh 2019-06-21 14:43:00 +01:00
run-erlang-server.sh Add options (nicked from rabbitmq-server's startup scripts) that unbork Erlang performance 2014-05-05 14:28:14 -04:00
sum-all-imperative-syndicate.rkt imperative-syndicate versions 2018-04-29 23:16:07 +01:00
sum-all-minimart.rkt Bump up roundtrip-gathering period to 10s; remove useless variables 2015-03-21 20:51:50 -04:00
sum-all-syndicate.rkt Repair broadcast-latency-imperative-syndicate; rename prospect -> syndicate, and start repairing them 2018-04-30 11:20:10 +01:00
uvserver.c Fix uvserver shutdown procedure. 2018-05-01 10:43:36 +01:00

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.