gpt4 book ai didi

c# - C# 中 'new' 的性能成本?

转载 作者:IT王子 更新时间:2023-10-29 04:07:28 25 4
gpt4 key购买 nike

在 C# 中,使用 new 关键字的性能成本是多少?我特别询问与游戏开发有关的问题,我知道在 C++ 中,每个更新周期都绝对不能成为新事物。这同样适用于 C# 吗?我正在使用 XNA 并为移动设备开发。真的只是问一个优化问题。

最佳答案

new 的成本分为三个部分:

  • 分配内存(如果是值类型可能不需要)
  • 运行构造函数(取决于你在做什么)
  • 垃圾收集成本(同样,如果它是值类型,这可能不适用,具体取决于上下文)

如果不在主代码中创建任何 新对象,就很难以惯用的方式使用 C#...尽管我敢说尽可能多地重用对象是可行的。尝试使用一些真实的设备,看看您的游戏表现如何。

我当然同意像这样的微优化通常在编程中要避免,但它更适合游戏循环而不是其他地方——因为显然游戏对甚至小停顿。但是,很难判断使用更多对象的成本,因为 GC 成本会随着时间的推移而分散。

分配器和垃圾收集器在 .NET 中非常好,尽管它在设备上可能更简单(我假设是 Windows Phone 7)?特别是,我不确定 Compact Framework CLR(WP7 使用的)是否具有分代 GC。

关于c# - C# 中 'new' 的性能成本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4253728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com