使用枚举而不是字符串加速?

时间:2011-09-14 22:33:50

标签: c#

我有游戏,我用名字标记状态。在使用状态的每个更新中,您使用它们的名称,字符串。我想知道用枚举值替换字符串是否值得吗?

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

由于

4 个答案:

答案 0 :(得分:1)

嗯,你有性能问题吗?

当然使用整数值会更快,但如果实现它的速度足够快,可以花时间去其他地方。也许在评论中留下自己的待办事项。

答案 1 :(得分:0)

默认情况下,枚举在内部被视为int,因此如果您多次检查,则速度会更快。但是,如果每秒仅检查30次,则与其他可能的成本相比,此成本毫无意义。你有没有想过看什么是最慢的?

答案 2 :(得分:0)

我个人认为,为了达到最大可能不必要的效率,你应该考虑位标志。这些允许您执行标准的按位运算符。

[Flags]
enum Choices
{
    OptionOne = 0x0,
    OptionTwo = 0x1    
}

class MyClass
{
    Choices mychoice = Choices.OptionOne | Choices.OptionTwo;
}

答案 3 :(得分:0)

在这种情况下,枚举肯定更干净,并提供更好的可维护性......你不会以某种方式打错状态(或者你可能,但编译器会告诉你)。它也会更快,在字符串比较中进行简单的整数比较。

话虽如此,如果编码已经完成,并且您没有针对此状态实现的性能问题,则没有太多理由可以更改它。正如其他人所说的那样,如果这是你唯一的问题,请对其进行描述。