Zdravím
Mám tento kód:
Function ReadInt(InputStream: TStream): Integer;
begin
InputStream.ReadBuffer(Result,4);
end;
- začátek měření -
For i := 1 to Length(TIntArrayNode(LastNode).Payload) do
TIntArrayNode(LastNode).Payload[i - 1] := ReadInt(InputStream);
- konec měření -
Problém je ten, že pokud je vykonáván v pracovním vlákně , tak je cca. 3x pomalejší než pokud se vykonává v hlavním vlákně aplikace (cyklus je stejně dlouhý, data jsou totožná, nejsou tam žádné synchronizace).
Byl jsem schopný určit, že problém je právě v InputStream.ReadBuffer (stream je typu TMemoryStream).
Ví někdo proč to je o tolik pomalejší, a jak to vyřešit?
Jde o Delphi 7 Personal - čili nemám zdrojáky ke streamům.