{$ifdef __HEAD} TProfilePlainTextMMap = class(TProfileDataFile) private fDF: TFastFileStream; public constructor Create(const aFileName: string); destructor Destroy; override; procedure WriteEnter(Thread: TThreadID; When: Int64; Func, Src: String; Line: Integer); override; procedure WriteLeave(Thread: TThreadID; When: Int64); override; end; {$ELSE} { TProfilePlainTextMMap } constructor TProfilePlainTextMMap.Create(const aFileName: string); begin inherited; fDF:= TFastFileStream.Create(aFileName, fmCreate, fmShareExclusive); end; destructor TProfilePlainTextMMap.Destroy; begin FreeAndNil(fDF); inherited; end; procedure TProfilePlainTextMMap.WriteEnter(Thread: TThreadID; When: Int64; Func, Src: String; Line: Integer); var l: string; begin l:= hexStr(When, 16)+ ';'+hexStr(Thread, 4)+ ';'+Src+ ';'+IntToStr(Line)+';'+Func + #13#10; fDF.Write(l[1], Length(l)); end; procedure TProfilePlainTextMMap.WriteLeave(Thread: TThreadID; When: Int64); var l: string; begin l:= hexStr(When, 16)+ ';'+hexStr(Thread, 4)+ ';'#13#10; fDF.Write(l[1], Length(l)); end; {$ENDIF}