On Monday, January 10, 2011 10:52:40 Eric Poggel wrote: > On 1/10/2011 9:08 AM, Justin Johansson wrote: > > On 10/01/11 03:06, Peter Alexander wrote: > >> I remember there was a discussion a little while back about how Phobos > >> would assume that structs are cheap to copy, and would simply pass them > >> by value. > >> > >> Is this assumption now "the D way"? Should we all just pass structs by > >> value, assuming cheap copy construction? > >> > >> If so, I think this needs to be documented somewhere (assuming it isn't > >> already), because it's a radical departure from C++, and also from most > >> other languages (where everything is a reference type). People need to > >> be aware of this. > > > > What if the byte size of some struct is say a KB or a MB would one still > > think that copy construction is cheap? > > > > In this instance I would not blame poor performance on Phobos but rather > > than your own design. > > > > Cheers > > Justin > > I assume it varies by architecture, but at what size threshold is it > faster to copy structs by reference instead of value? If I pass a large > struct by value, will dmd optimize it away as a reference?
No. dmd never turns things into ref unless you tell it to. - Jonathan M Davis