‹ gerlach.coffee

Using Lumo With More Than 1.5GB of Heap Space

Sep 21, 2017

I love lumo. It’s a wonderful way to hack together quick scripts using Clojurescript. But as of now (version 1.6.0) it only supports 1.5GB of heap space. This is generally enough for most things, but if you work with really big files (and you can’t or won’t rewrite your whole program to use a better approach like streaming) then you have a problem.

This is a default setting of nodejs that can be fixed by invoking the node command with the --max_old_space_size=8192 flag (to allow for 8GB of heap space). But since lumo has already been compiled with the default settings, there is no way to change the setting for scripts invoked with lumo.

A way to workaround this issue is to compile the lumo script to nodejs (I used shadow-cljs) and then to invoke this script with

node --max_old_space_size=8192 mycompiledlumoscript.js

This introduces an extra step and precludes using the REPL (for the full data), but at least it works.

If you want to keep tabs on this situation, there is a GitHub issue to keep track of it.