gpt4 book ai didi

multithreading - 加快Delphi的线程速度

转载 作者:行者123 更新时间:2023-12-03 18:27:44 26 4
gpt4 key购买 nike

我的问题是关于应用程序改进的类型/种类。我想提高线程速度(我无法提高线程的复杂性)。我的问题是,如果不使用整数/longint作为函数的参数,我将使用字节作为类型,这会改变/提高速度吗?

代替发送数组,而是发送指向这些数组的指针会提高我的速度吗?

我可以使用哪些其他技巧来提高线程的速度(复杂度除外)

上面的代码是我使用的简化。

Type TArray = array of integer;
Type PArray = ^TArray;

Procedure TMyThread.ProcessFunction(iNr:integer; vArray:PArray);
begin
vArray^[iNr-2]:=5;
//......
end;

Procedure TMyThread.Execute;
var vArray:TArray;
i,iNr:integer;
begin
Randomize;
While Not Terminated do
begin
iNr:=Random(240);
SetLength(vArray,iNr);
for i:=0 to iNr-1 do
vArray[i]:=i+2

ProcessFunction(iNr,@Array);
end;
end;

有什么方法可以改善这一点吗?

最佳答案

目前尚不清楚所谓的性能问题在哪里,因为我们不知道ProcessFunction的实际作用,但是一种可能性是,性能会被vArray的(重新)分配所破坏。如果是这种情况,您可以通过预分配240个数组来加速它,然后将其与每次迭代中使用的实际大小一起传递。正如David Heffernan指出的那样,因为TArray已经是引用类型,所以不需要显式指针。

关于multithreading - 加快Delphi的线程速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com