Assuming structs are cheap to copy?

Jonathan M Davis jmdavisProg at gmx.com
Mon Jan 10 12:15:36 PST 2011


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


More information about the Digitalmars-d mailing list