-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Serialisation of static environments is slow for large functorised programs #102
Comments
Some issues fixed on commit fc16a08. We now avoid problematic hash collisions when serialising elaboration environments by transforming There are still some room for improvements, however. The |
I have now improved serialisation further (commit 4b74e80) and arranged, semiautomatically, that sharing is not attempted for the pickle conversions (i.e.,
The combinator disables attempts to share data involving the values of type It turns out, however, that there is a tradeoff between sharing and non-sharing. A good mix is to enable sharing at the environment level. To avoid that the Compiling MLton is now down at 19m42s on my Macbook Pro (2016). There might still be possibilities for improvements. For instance, some hash collisions seem to appear during serialisation of RegionStatEnv values... |
I'm closing this issue now. To further significantly improve compile times, we can perhaps support a compilation mode where groups of source files are compiled in sequence without serialising to disc. Mlb-files already have the |
Serialisation of static environments during static interpretation is slow for large functorised programs (e.g., MLton). When environments are serialised, which they are in particular when functor closures are serialised during static interpretation, it seems that quite some time is spend on discovering sharing (with parts of previously serialised environments).
See #97 .
The text was updated successfully, but these errors were encountered: