使用枚举代替字符串加速

  • 本文关键字:字符串 加速 枚举 c#
  • 更新时间 :
  • 英文 :


我有游戏,我用名字标记了州。在处理状态的每次更新中,你都要处理它们的名称和字符串。我想知道是否值得用枚举值替换字符串?

也许这听起来很愚蠢,但是有很多状态,每个状态每秒至少被处理30次。

谢谢

那么,你有性能问题吗?

当然,使用整数值会更快,但如果它实现得足够快,那就把时间花在别处吧。不妨在评论里给自己留个待办事项。

我个人认为,为了最大限度地提高效率,你应该考虑位标志。它们允许您执行标准的按位操作符。

[Flags]
enum Choices
{
    OptionOne = 0x0,
    OptionTwo = 0x1    
}
class MyClass
{
    Choices mychoice = Choices.OptionOne | Choices.OptionTwo;
}

枚举在这种情况下当然更干净,并提供更好的可维护性…您不会以这种方式键入状态(或者您可能会,但编译器会告诉您)。它也会更快,做一个简单的整数比较而不是字符串比较。

也就是说,如果编码已经完成,并且您没有特定于这个状态实现的性能问题,那么就没有太多理由更改它。正如其他人所说,如果这是你唯一的问题,请配置它。

默认情况下,枚举在内部被视为int s,因此如果您检查多次,则会更快。然而,如果它每秒只被检查30次,那么与其他可能的成本相比,这个成本是没有意义的。你有没有侧写过哪个是最慢的?

最新更新