title: Why is 16 byte the recommended size for struct in C#?
body: <p>I read the Cwalina book (recommendations on development and design of .NET applications).</p>
  
  <p>He says that a good designed struct has to be less than 16 bytes in size (for performance purposes).</p>
  
  <p>Why exactly is this?</p>
  
  <p>And (more important) can I have larger struct with same efficiency if I run my .NET 3.5 (soon to be .NET 4.0) <strong>64-bit application on <a href="https://en.wikipedia.org/wiki/Intel_Core#Core_i7" rel="noreferrer">Core&nbsp;i7</a> under Windows&nbsp;7 x64</strong> (is this limitation CPU / OS based)?</p>
  
  <p>Just to stress again - I need as efficient struct as it is possible. I try to keep it on the stack all the time. The application is heavily multi-threaded and runs on sub-millisecond intervals, and the current size of the struct is 64 bytes.</p>