for k := i to OverLine - 1 do
///////////////////////////////////////
begin
i := round((k + 1 - LowerBound) * GData^.MngData.RatioH + GData^.MngData.StartT);
while (mypt[signum][j].x < i) do
begin
if LineData[signum][k].MaxValue < mypt[SigNum][j].Y then LineData[signum][k].MaxValue := mypt[SigNum][j].Y;
if LineData[signum][k].MinValue > mypt[SigNum][j].Y then LineData[signum][k].MinValue := mypt[SigNum][j].Y;
inc(t);
inc(j);
if (j > high(mypt[SigNum])) then break;
end; if t > 0 then
begin
LineData[signum][k].StartLen := j - t;
LineData[signum][k].EndLen := j - 1;
if LineData[signum][OverLine].MaxValue < LineData[signum][k].MaxValue then LineData[signum][OverLine].MaxValue := LineData[signum][k].MaxValue;
if LineData[signum][OverLine].MinValue > LineData[signum][k].MinValue then LineData[signum][OverLine].MinValue := LineData[signum][k].MinValue; if (j > high(mypt[SigNum])) then break;
t := 0;
end;
////////////////////////////////////
end;
二维数组mypt[signum][j]为tpoint类型, j从几千可能大到 1m 个
有OverLine个 LineData结构(j的开始和结束,在这范围内 mypt[][j].y最大和最小值)数值,
其中,LineData[OverLine ]为前面所有情况LineData[0..OverLine -1]的最大和最小值,也就是最后一个break;前面的两行现在这段代码明显太慢了,没有什么优化的措施不知道是否容易嵌入汇编,也不知道效率能提高多少?