gpt4 book ai didi

c# - for循环/switch语句的性能优化

转载 作者:太空狗 更新时间:2023-10-29 21:05:55 27 4
gpt4 key购买 nike

请帮助我确定以下哪些代码是更优化的代码?

for(int i=0;i<count;i++)
{
switch(way)
{
case 1:
doWork1(i);
break;
case 2:
doWork2(i);
break;
case 3:
doWork3(i);
break;
}
}

switch(way)
{
case 1:
for(int i=0;i<count;i++)
{
doWork1(i);
}
break;
case 2:
for(int i=0;i<count;i++)
{
doWork2(i);
}
break;
case 3:
for(int i=0;i<count;i++)
{
doWork3(i);
}
break;
}

在第一种情况下,恰好有一个开销总是在每次迭代中检查 switch case 条件。在第二种情况下,开销不存在。我觉得第二种情况要好得多。如果有人有任何其他解决方法,请帮我提出建议。

最佳答案

switch 低的、连续的值是疯狂快的——这种类型的跳转具有高度优化的处理。坦率地说,在绝大多数情况下,您的要求没有任何区别 - doWork2(i); 中的任何都会淹没这个;哎呀,虚拟电话本身可能会淹没它。

如果它真的、真的、真的很重要(我很难想出一个真实的场景),那么:衡量它。在任何明显的情况下,唯一衡量它的方法是使用您的实际、准确代码——您不能概括微优化。

所以:

  1. 没关系
  2. 测量
  3. 没关系

关于c# - for循环/switch语句的性能优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11202580/

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