Eine Frage hätte ich noch. Ich habe gerade mal beobachtet wie die "E/A Bytes (Lesen)" im Taskmanager aussieht nachdem ich mein Testprogramm starten.
Mit meinem aktuellen Code und einem <Stream>.LoadFromFile() geht der o.g. Wert direkt in die Höhe. Ich würde mal sagen dort steht dann Programmgröße + 200KB.
Wenn ich folgenden Code verwende, dann passiert das nicht. Woran liegt das?
Delphi-Quellcode:
aFileStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyWrite);
try
// Get hash from stream end
SetLength(s, 32 * SizeOf(Byte));
aFileStream.Position := aFileStream.Size - Length(s);
aFileStream.Read(s[1], Length(s));
ShowMessage(s);
finally
aFileStream.Free;
end;
Wo ist also der Unterschied was den Wert "E/A Bytes (Lesen)" angeht zwischen den Zeilen unten?
Delphi-Quellcode:
// Verursaacht hohe (Programmgröße + ~100KB) "E/A Bytes (Lesen)" im Taskmanager
aByteStream := TBytesStream.Create;
aByteStream.LoadFromFile(ParamStr(0));
// Verursacht dieses Problem nicht
aFileStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyWrite);
Und: gibt es eine Lösung TBytesStream zu verwenden -ohne- dieses Problem im TaskManager? (TStringStream verursacht diese Anzeige übrigens auch)