planck 2020-02-03

Hello! I have written some scripts to build planck in a debian buster chroot, for amd64 and i386. Here are the scripts and the resulting build artifacts: https://github.com/cellularmitosis/builds/tree/master/planck

Interestingly, i386 performance is poor, and may be Debian-specific. It appears WebKit used SSE2 instructions in JavaScriptCore, which are not compatible with older i386 hardware. To work around this, Debian used the CLoop (non-JIT, non-ASM) interpreter in JavaScriptCore to avoid any SSE2 instructions.

(I should say, startup performance is poor -- I haven't done any throughput benchmarks)

On an Intel Atom 1.6GHz:

$ time planck -e '(+ 1 1)'
2

real	0m18.440s
user	0m18.913s
sys	0m0.342s

Clojure startup performance on the same machine for comparison:

$ time clojure -e '(+ 1 1)'
2

real	0m7.902s
user	0m13.091s
sys	0m0.835s

(note the better use of both cores by Java!)

It might be worth setting the JSC_useFTLJIT environment variable to true to see if it speeds things up.

oh interesting, thanks!

hmm, looks the same. Debian must have forced CLoop at build-time.

building my own libjavascriptcore with SSE2 re-enabled would make an interesting comparison!

I've also tried building lumo after discovering that node.js is still available on i386 as an "unofficial" build (lumo appears to use v8's heap snapshotting for faster startup), but I ran into trouble getting the yarn / npm dependencies to work.