我正在编写一些性能很重要的代码。在其中的一部分中,我必须将一大组预先计算的数据与动态值进行比较。目前,我将预先计算的数据存储在 .cs 文件中的一个巨大数组中:
Data[] data = { /* my data set */ };
数据集大约 90kb,或大约 13k 个元素。我想知道这样做是否有任何缺点,而不是从外部文件加载它?我不完全确定 C# 在内部是如何工作的,所以我只是想了解使用此方法可能遇到的任何性能问题。
我正在编写一些性能很重要的代码。在其中的一部分中,我必须将一大组预先计算的数据与动态值进行比较。目前,我将预先计算的数据存储在 .cs 文件中的一个巨大数组中:
Data[] data = { /* my data set */ };
数据集大约 90kb,或大约 13k 个元素。我想知道这样做是否有任何缺点,而不是从外部文件加载它?我不完全确定 C# 在内部是如何工作的,所以我只是想了解使用此方法可能遇到的任何性能问题。
好吧,说实话,90kb 并没有那么大。对于这种大小的数组,无论哪种方式,您都不会看到任何明显的差异。
一般来说,如果你有一个巨大的数组,我不建议将它存储在源文件中。运行时性能可能不是问题,但我可以看到它会减慢编译速度。
从设计的角度来看,决定可能归结为数据是否会改变。如果您正在存储某种类型文件的字节头,那么将其存储在源中可能是合理的,因为它永远不会改变。但是,一些预先计算的数据,特别是如果您以后可能再次生成它,您可能应该将它放在一个外部文件中。
坏的:
好的:
旁注: 如果您担心性能,请确保使用数组,而不是列表:数组与列表的性能。