On Wednesday, 7 March 2012 at 02:25:41 UTC, Walter Bright wrote:
On 3/6/2012 4:27 AM, Manu wrote:
On 26 February 2012 00:55, Walter Bright
<newshou...@digitalmars.com
Most straight up GC vs malloc/free benchmarks miss
something crucial. A GC
allows one to do substantially *fewer* allocations. It's a
lot faster to not
allocate than to allocate.
Do you really think that's true?
Yes.
I think you're both right. GC does definitely allow you to do
less allocations, but as Manu said it also makes people more
allocation happy.
Are there any statistics to support that?
No, just my experience using both.
Consider strings. In C, I'd often have a function that returns
a string. The caller then (eventually) free's it. That means
the string must have been allocated by malloc.
I'd say it is bad design to return a malloc'd string. You should
take a destination buffer as an argument and put the string there
(like strcpy and friends). That way you can do whatever you want.
Sean made the good point that using buffers like that can lead to
errors, but D's arrays make things a lot safer.