在我的应用程序中,我每帧执行一次 System.Array.Resize。最初我将我的数组设置为最大可能大小,然后将它们调整为更小的大小。在某些情况下,它可能小很多,在其他情况下,它可能只是小一点。在我看来,要调整大小的元素越多,所需的时间就越长。也许我的观察是错误的,这就是我在这里问的原因。
最佳答案
应该可以,调整大小涉及将新内存分配到您想要的大小并将旧数组复制到新数组中。数组越大,复制的越多。
This method allocates a new array with the specified size, copies elements from the old array to the new one, and then replaces the old array with the new one.
在不太了解代码的情况下,尝试使用 List<T>
要管理您需要执行的列表和调整大小以及需要将其提供给 Unity 时,请调用 list.ToArray();
.
这仍然会创建数组并复制它,但每帧只复制一次。
关于c# - 数组越大,C# 数组调整大小所需的时间越长吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103899/