geometric memory growth
Fri Nov 25 13:17:31 CET 2005
--- Ulf Wiger <ulf@REDACTED> wrote:
> The obvious fix:
> Channel = State#state.channel,
> SendF = fun(To, Msg) ->
> ChNo, To, Msg)
> Now, wouldn't it be great if the compiler could
> figure out how to do this
> at compile-time?
Hoisting the expression out of the fun is only safe if
State is known to be a #state record at this point.
Otherwise, you can get an exception in the wrong
Applying this optimization (hoisting expressions out
of closures) is often a good thing, since we evaluate
the expression once, then can use the closure many
times. There are some counterexamples, though, so a
bit of care is needed to tell when it is useful.
Yahoo! Music Unlimited
Access over 1 million songs. Try it free.
More information about the erlang-questions