.cs文件中大型硬编码数组的性能注意事项

时间:2012-12-07 04:18:02

标签: c# .net arrays performance optimization

我正在写一些性能很重要的代码。在其中的一部分中,我必须将大量预先计算的数据与动态值进行比较。目前,我将预先计算的数据存储在.cs文件中的巨型数组中:

Data[] data = { /* my data  set */ };

数据集约为90kb,或大约13k个元素。我想知道这样做是否有任何缺点,而不是从外部文件中加载它?我不完全确定C#是如何在内部工作的,所以我只是想知道我可能遇到的任何性能问题。

2 个答案:

答案 0 :(得分:5)

嗯,说实话,90kb并不是那么大。对于那个大小的数组,你不会看到任何明显的差异。

通常,如果你有一个巨大的数组,我不建议将它存储在源文件中。它可能不是运行时性能的问题,但我可以看到它减慢了编译速度。

从设计角度来看,如果数据永远更改,则可能会做出决定。如果你要存储,比如某种类型的文件的字节标题,这可能是合理的存储在源中,因为它永远不会改变。但是,一些预先计算的数据,特别是如果你可以在以后再次生成它,你应该把它放在一个外部文件中。

答案 1 :(得分:1)

<强>为:

  • 修改硬编码数据集很麻烦

不可

  • 由于数据文件不存在,由于用户错误导致数据文件损坏或格式错误,您不会受到羞辱。
  • 不必加载/解析数据

<强>旁注: 如果您担心性能,请确保使用数组,而不是List:Performance of Arrays vs. Lists