在C#中,使用new关键字的性能成本是多少?我特别问与游戏开发有关的问题,我知道在C ++中每个更新周期都要进行更新是绝对不可以的。同样适用于C#吗?我正在使用XNA并正在为移动设备开发。只是问一个优化问题。
new
的成本分为三部分:
很难在没有在主代码中创建any新对象的情况下惯用C#,尽管我敢说通过尽可能多地重用对象是可行的。尝试掌握一些真实的设备,并查看游戏的性能。
我当然同意在编程中应该避免像这样的微观优化,但通常比其他地方更适合于游戏循环-因为显然游戏对很小的暂停都非常敏感。但是,很难判断使用更多对象的成本,因为由于GC成本它会随着时间的流逝而扩展。。NET中的分配器和垃圾收集器相当不错,尽管它在设备上可能更简单(我认为是Windows Phone 7)?特别是,我不确定Compact Framework CLR(WP7所使用的一种)是否具有世代GC。
newed
的频率更高,因为strings之类的东西涉及更多的不变性。然后