-
Notifications
You must be signed in to change notification settings - Fork 66
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
module caching #310
Comments
I think steps to make this happen include:
What I'm not sure of is how to handle cases when the module itself hasn't changed and some other module uses a function on that module that was previously unused and not compiled. I am am guessing in order to handle that, the cache may need to keep track of functions compiled. Then at least if one if the above happens, it can force a cache invalidation |
I am also not sure currently how the cache should be stored |
cache storage location could be set with a mix param? right beside input, output, etc? |
There isn't a need for the caching to be configurable or in the priv folder. The best places are probably the |
I thought you might want to use the same cache with multiple elixirscript projects, the performance benefits of this is probably negligible. if by default temp dir is outside _build, such as in ~/.config or something, it gets really annoying to pass through the project as a volume to containers and such. |
Current compilation step times in milliseconds. This is not counting the time spent inside elixir compiler so add an extra 1-2 seconds. Why is output step taking so long? half the time is the cost of modules = ElixirScript.State.list_modules(pid) |
It could be related to how the state is stored. It's possible that step will be slowest because it does the loading of modules for most of modules being compiled |
Closing this in favor of #438 which is a bit more directed |
Caching of modules that have been compiled. The cached version should be used if the beam file has not been modified since the module was compiled. When the beam file is modified, that cache should be invalidated.
The text was updated successfully, but these errors were encountered: