【发布时间】:2014-09-01 20:04:34
【问题描述】:
我有一个简单的数组:
Myarray<T> = array[0..100] of T;
如何尽快将其复制到另一个数组中。 请注意,源始终是普通的通用数组,而目标可以是动态数组。 (但我怀疑这很重要)。
我试过了
move(Source[0], dest[0], count * sizeof(T));
但这对于托管类型并不好。
我希望得到比以下更快的东西:
for i:= 0 to count -1 do D[i]:= S[i];
我有什么选择?
背景
该数组是 BTree 结构的一部分,并且正在进行大量复制。
我需要速度。
【问题讨论】:
-
您为什么希望可以改进简单的作业?简单赋值有什么问题?
-
没有移动那么快。我想要介于两者之间的东西。
-
但是这些动作不起作用。作业可以。它在什么方面效率低下?我猜这个问题会因为所有的代码而混淆。您只需要一种性能更好的分配方式。我认为你应该问这个一般性问题,而不是展示我们不需要看到的所有其他代码。 Q 的根源是分配的性能。请问你能不能问一下。你的许多问题都是这样的,你提出了很多无关紧要的细节,隐藏了问题的核心。
-
它没有问题,但我希望它更快。
-
这些动作只适用于简单类型,也许我应该对这种情况进行特殊处理并循环处理其他所有内容。
标签: arrays delphi generics copy