Compilation is taking a ton of memory
sarn
sarn at theartofmachinery.com
Wed Jun 27 23:12:21 UTC 2018
On Wednesday, 27 June 2018 at 16:00:37 UTC, Mario Silva wrote:
> Any tips on how to code in a way that minimizes both
> compilation times and memory consumption when compiling?
Here are my tips. I'd love to hear more from others.
* Try to reduce imports. E.g., say you use a lot of stuff from
std.algorithm in your implementations, but not in your external
interface. In that case, instead of doing "import
std.algorithm;" at the module top, do things like "import
std.algorithm.searching : canFind;" inside function bodies. If
you think about this when designing your external interfaces, you
can let user code import what it needs from your modules without
recursively importing half the rest of the D ecosystem with it.
* Templates are great, but not everything has to be one.
Sometimes a simple delegate makes a perfectly generic interface.
Templated code can be more expensive to compile, while
non-templated code can be compiled once in a library and then
reused.
* CTFE is awesome but currently a memory hog.
BTW, vibe.d isn't great with this stuff, TBH. Simple public API
functions return types with "auto" that turn out to be several
layers of templated wrappers all the way down, each wrapper
coming from a different module. That's an example of what to
avoid doing.
More information about the Digitalmars-d
mailing list