On Tuesday, 19 November 2013 at 07:36:29 UTC, monarch_dodra wrote:
On Tuesday, 19 November 2013 at 05:38:14 UTC, Jesse Phillips
wrote:
So apparently substrings were considered a common cause of memory leaks.

I think it is pretty important to remember that slicing, while
giving you a small view, still holds the entire array.

I think there is nothing wrong with pipping a ".dup" every now
and then, after slicing something.

As a matter of fact, I've been playing around with transcoding
strings (UTF-8/16/32). I start by allocating a large buffer to
write into. When I'm done, I look at the buffer's useage, and if
it's too low, I return a dup of the buffer slice, allowing the GC
to reclaim the original buffer. Not only does this take up less
memory, but overall, I actually get better run-times too (!)

The problem with Java's string is that you don't have enough control to do this. Instead of giving extra control, because it is obviously necessary, they dumb down the thing even more.

Reply via email to