Заметил, что недавно выпущенная софтина жрет память со скоростью мегабайт в минуту. Задумался... Потом еще раз задумался...
В итоге нашел в коде одного из потоков вот такой вот парсер:
Код:
procedure TMVCThread.ParceData(AData: RawByteString);
var
sl:TStringList;
i: Integer;
begin
Delete(AData,1,3);
FParameters.criticalsection.Enter;
try
sl:=TStringList.Create;
sl.Delimiter:=' ';
sl.DelimitedText:=AData;
for i := 0 to 15 do
begin
try
FParameters.voltagedata^.Data[i]:=GetVoltage(sl[ports[i]]);
except
ThreadSendMessage(THREAD_ERROR_PARCE_ANSWER);
end;
end;
FParameters.voltagedata^.Time:=Now;
finally
FParameters.criticalsection.Leave;
end;
end;
потока 3 штуки, вызов парсера 4 раза в секнду, память улетает просто с фантастической скоростью
Как говорится: "и на старуху бывает проруха"