space leak
A data structure which grows bigger, or lives longer, than might be expected.
Such unexpected memory use can cause a program to require more garbage
collections or to run out of heap. Space leaks in functional programs usually
result from excessive laziness. For example, the Haskell function
sum [] = 0
sum (x:xs) = x + sum xs
when applied to a list will build a chain of closures for the additions
and only when it reaches the end of the list will it
perform the additions and free the storage. Another
example is the function
mean l = sum l / length l
The sum function forces the entire list l to be evaluated and built in the
heap. None of it can be garbage collected until the
length function has consumed it.
Nearby terms:
space « space-cadet keyboard « space complexity «
space leak » SPACEWAR » SPADE » spaghetti code
|