我阅读了Cwalina的书(关于.NET应用程序的开发和设计的建议). 他说,一个好的设计结构必须小于16个字节(出于性能目的). 这究竟是为什么? 而且(更重要的是)如果我在Windows 7 x64下运行我的
他说,一个好的设计结构必须小于16个字节(出于性能目的).
这究竟是为什么?
而且(更重要的是)如果我在Windows 7 x64下运行我的.NET 3.5(即将成为.NET 4.0)64位应用程序(这是基于CPU / OS的限制),我可以拥有更高效率的结构吗?
只是再次强调 – 我需要尽可能高效的结构.我试着一直把它放在堆栈上.该应用程序是多线程的,并且以亚毫秒为间隔运行,结构的当前大小为64字节.
只有您知道结构在程序中的使用方式.但如果没有别的,你可以随时测试它.例如,如果它经常传递给其他功能,以下可能会照亮您:class MainClass { static void Main() { Struct64 s1 = new Struct64(); Class64 c1 = new Class64(); DoStuff(s1); DoStuff(c1); Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 10000; i++) { s1 = DoStuff(s1); } sw.Stop(); Console.WriteLine("Struct {0}", sw.ElapsedTicks); sw.Reset(); sw.Start(); for (int i = 0; i < 10000; i++) { c1 = DoStuff(c1); } sw.Stop(); Console.WriteLine("Class {0}", sw.ElapsedTicks); sw.Reset(); Console.ReadLine(); } }
有:
public class Class64 { public long l1; public long l2; public long l3; public long l4; public long l5; public long l6; public long l7; public long l8; } public struct Struct64 { public long l1; public long l2; public long l3; public long l4; public long l5; public long l6; public long l7; public long l8; }
尝试使用代表性结构/类的这种东西,看看你得到了什么结果. (在我的机器上,上面的测试,这个类似乎快3倍)