Matthias Felleisen wrote at 04/21/2011 01:07 PM:
-A- I demanded that students deliver their functionality via Unix shell 
scripts, and so I did so too. My tcsh scripts check the argument number and 
pass the arguments on to Racket. Firing up one of my clients or servers takes 
several seconds. All other language implementations appear to bring up their 
servers or clients instantaneously.

I only see slow performance like that from non-GUI Racket when the Racket code is not yet compiled, and perhaps when the files that need to be read (or ELF loaded) by the OS are not in OS caches.

The "racket" REPL executable startup *did* seem to get a lot slower a while ago -- a few seconds -- compared to the old "mzscheme" REPL. But 5.1 was less than 1 second to REPL prompt when I tried it just now.

Three shell script tips that shouldn't matter much, but might speed you up a little: (1) Consider using "/bin/sh" or "/bin/bash" instead of "tcsh", since the old rule is Bourne for scripting, C-shell for interactive; (2) In the "#!" line, use command line options to disable shell features that load various system and user rc files, since these are slow to read and interpret, and can be huge like completion tables, plus in a production app other people's shell rc files can introduce instability; (3) After your script does the minimal stuff it has to do in shell rather than Racket, use an "exec" to fire off "racket", so that everyone can forget sooner that shell ever happened.

--
http://www.neilvandyke.org/
_________________________________________________
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/dev

Reply via email to