| List: | Internals | « Previous MessageNext Message » | |
| From: | Michael Widenius | Date: | March 2 2009 2:15pm |
| Subject: | Re: [Drizzle-discuss] Removing Array custom vector allocation for semi-join subqueries | ||
| View as plain text | |||
Hi! >>>>> "Monty" == Monty Taylor <mordred@stripped> writes: Monty> Brian Aker wrote: >> Hi! >> >> On Feb 26, 2009, at 12:21 PM, Mats Kindahl wrote: >> >>> recycling. In that case, any pointers into that old memory that are still >>> dangling would not be useful, since the memory is likely to be >>> overwritten with >> >> mem_root or not mem_root... I consider this to be pretty bad behavior to >> rely on. Monty> Not mem_root. C++ has much better ways of dealing with this sort of Monty> thing (automatic delloc when you're done with stuff) mem_root was likely Monty> very important when it was written, and a great idea then. Monty> Now it's just extra complexity that hides behavior. For certain objects, memroot is a much better way to do it than with C++ deallocators: - Uses less memory overhead for objects - Less mutex, as you mainly do one free per query and - Much faster malloc; Mallocs are done in bigger chunks and for many queries you can avoid do any mallocs at all (when the base memory you have is big enough) memroot is of course not useful for objects that changes size or has a short life time, but it wasn't designed for these. Regards, Monty
