C#大型开关/机箱在第一次通话时速度慢?

时间:2015-03-19 09:27:19

标签: c# switch-statement large-files

对于C#仿真软件模块(3D网格),我有一个由3 ^ 6个案例组成的开关/案例块(每个6个邻居有3个条件)。除了内容(每个块的大小大致相同)之外,它还会导致大约9000 LoC。

考虑到不同条件的数量,我怀疑有什么比使用switch / case这样做更高效,并且在运行它时,它的速度相当快。但是,在第一次调用时,程序会冻结几秒钟。在不重新启动软件的情况下重复计算时,它会保持快速。调试和发布的效果相同。

Is "else if" faster than "switch() case"?中接受的答案表明,switch / case是通过哈希列表实现的。这个列表真的是在运行时创建的吗?如果是这样,它是否可以以某种方式进行优化,因此每次发布时都不需要几秒钟?如果没有,延时从何而来? (我已经检查过,当注释掉开关/盒子时,延迟消失了。)

非常感谢任何帮助或提示!

0 个答案:

没有答案