For fastest executable: raco make, or exe, or ...?

What's the best way to get a speedy run, of an arbitrary racket program?

Context: kattis.com, the competitive coding site, may be adding racket as an allowed language (yay!). They run a submitted-program repeatedly. Problems are mostly compute-intensive, though I guess I/O (reading) is occasionally significant. Only standard libraries. Submitting multiple files is allowed (but probably very uncommon).

Some minor experimenting on my end suggested that using raco make edges out raco exe by 5-10%, but that's only testing one small program, and is probably just noise and non-representative at that.
My instinct is to recommend they build via raco make <entrypointfile.rkt>, mostly since that saves their server from creating a new, large executable file per submission.

Am I missing any obvious other alternatives, or issues to make that kattis folk aware of?

2 Likes

See 2 raco exe: Creating Stand-Alone Executables

Running an executable produced by raco exe will not improve performance over raco make

I expect in some narrow cases embedding all the bits together can actually be a win, but mostly I would say use raco make for this case.

2 Likes