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



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

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

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

好吧,老实说,90kb并不是那么大。对于该大小的数组,您不会看到任何明显的差异。

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

从设计的角度来看,决定可能归结为数据是否会更改。如果你正在存储某种类型文件的字节头,那么存储在源中可能是合理的,因为它永远不会改变。但是,一些预先计算的数据,特别是如果您以后可能再次生成它,您可能应该将其放在外部文件中。

不好:

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

好:

  • 您可以避免愚蠢的事情,例如数据文件不存在,损坏或由于用户错误而导致格式错误。
  • 不必加载/解析数据

旁注:如果您担心性能,请确保使用数组,而不是列表:数组与列表的性能。

最新更新