检查角色的最佳表现

时间:2017-03-19 22:28:38

标签: c# performance

非常简单的问题。哪个测试会更快?这样:

var myString = "goodTimes";
if (myString.StartsWith("g"))
  {
  // do stuff
  }

或者这个:

var myString = "goodTimes";
if (myString[0] == 'g')
  {
  // do stuff
  }

2 个答案:

答案 0 :(得分:4)

出于所有实际目的,他们都会在几乎完全相同的时间进行测试。

第二个可能会更快几个时钟周期,但 谁关心

如果您要编写有史以来最成功的应用程序,已经被数百万用户下载,并且每天都在数百万台设备上运行,并且如果您的应用程序在每次安装时每秒执行一次上述代码,则总秒数您将为所有用户节省组合永远不会超过我们刚刚讨论过的总时间。

答案 1 :(得分:4)

他们做不同的事情 - 特别是对于零长度字符串,它们的行为不同。除此之外,假设 myString[0]应该稍微快一点(它做得少),但是:这实际上是否重要是非常具有上下文性的。在大多数情况下,它不会,你会花更多的时间问自己这个问题,而不是它会拯救。如果您处于重要的情况,您还会知道您需要使用实际的实际数据进行基准测试才能获得良好的答案。只有你自己的特定数据才能做到这一点。