Re: [Gauche-devel] IPv6 detection on Raspberry Pi
R7RS Scheme scripting engine
Status: Beta
Brought to you by:
shirok
From: Shiro K. <sh...@la...> - 2015-04-03 20:20:41
|
From: Duy Nguyen <pc...@gm...> Subject: Re: [Gauche-devel] IPv6 detection on Raspberry Pi Date: Fri, 3 Apr 2015 19:26:50 +0700 > :host "0.0.0.0" works great. Thank you. Aha! That's clever. Didn't think about it. > By the way, there was talk about precompile support (i.e. save > bytecode in a file) in the past, are there any experimental patches > around? It takes a few seconds just to run makiki. I wonder if cutting > out the compile part would help.. Precompilation feature is already in, just it hasn't made publicly documented. And it's usage is not yet straightforward, mainly because it involves invoking cc. A few seconds do sound too much. First we want to see what's taking up the time. (1) Add (exit 0) at the end of your main script - so that it exits after everything is loaded. (2) Run the main script with gosh -pload ./your-server-script This dumps how much time each spent for each module. On my machine it was like this: Load statistics: Time(us) File --------+------------------------------------------------------------------- 82706 /usr/share/gauche-0.9/0.9.5_pre1/lib/gauche/record.scm 50423 ../../Gauche-makiki/makiki.scm 23252 /usr/share/gauche-0.9/0.9.5_pre1/lib/rfc/json.scm 18098 /usr/share/gauche-0.9/0.9.5_pre1/lib/gauche/net.scm 13090 /usr/share/gauche-0.9/0.9.5_pre1/lib/gauche/generator.scm 11832 /usr/share/gauche-0.9/0.9.5_pre1/lib/rfc/mime.scm 11238 /usr/share/gauche-0.9/0.9.5_pre1/lib/rfc/822.scm : So certainly makiki.scm is the second heavy module, but it only takes up 50ms or so. In general, if you precompile a module it loads in a few milliseconds, so just precompiling makiki.scm would have marginal effect. (This result indeed gives me an incentive to optimize gauche.record, though.) I'm curious what your result will look like. If you see your modules are heavy to load, then it may be worth precompiling them. |