Open Simn opened 5 years ago
Something else we can do during this downtime: Run cl_restore
on our cached classes.
Another thing: Register a task for each directory when exploring class paths. This would improve startup time at the risk of missing out on some types when requesting a really quick toplevel completion.
This is mostly done, or partially obsolete with the changed caching.
There's still
Check if we have compilation contexts which haven't been accessed in a long time and discard them.
Which could now be saved to disk instead of being discarded. Should we open a separate issue for this, or is it not worth adding anyway?
Hmm yes, that one might be a good idea still. I'll reopen.
Once we've merged https://github.com/HaxeFoundation/haxe/pull/8730 we'll be able to poll the connected socket to see if there's a pending request. This should allow us to implement a pattern like so:
This assumes that the socket read function returns
Some data
if there's data, andNone
otherwise.It is important to keep maintenance tasks small so an incoming request isn't delayed too much. Such tasks could include:
cf_expr_unoptimized
is equal tocf_expr
, in which case we can unset it (this currently nearly doubles the memory required for typed AST storage).Generally, the goal is to keep memory usage at an acceptable level while not disrupting operations.
This requires some design to abstract the maintenance tasks.