From bb245d9d5053f29f0a7925916493ec3bb5a3c36e Mon Sep 17 00:00:00 2001 From: Martok Date: Mon, 11 Jul 2016 01:20:21 +0200 Subject: [PATCH] * use new buffered stream (eliminates need for TFastFileStream) --- uutlEmbeddedProfiler.pas | 12 +++++++++--- uutlProfilerBinaryFmt.inc | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/uutlEmbeddedProfiler.pas b/uutlEmbeddedProfiler.pas index f0957a2..df83d15 100644 --- a/uutlEmbeddedProfiler.pas +++ b/uutlEmbeddedProfiler.pas @@ -25,7 +25,7 @@ implementation {$IFDEF PROFILER_ENABLE} uses - Windows, Classes; + Windows, Classes, uutlStreamHelper; type TWriterThread = class(TThread) @@ -220,13 +220,19 @@ end; constructor TProfileDataFile.Create(const aFileName: string); var H: TPBHeader; + hh: THandle; begin inherited Create; -// fDF:= TFastFileStream.Create(aFileName, fmCreate); - fDF:= TFileStream.Create(aFileName, fmCreate); + fDF:= TutlPagedBufferStream.Create(TFileStream.Create(aFileName, fmCreate), 4096*64, true); H.VersionMagic:= NtoBE(HEADER_VER_MAGIC); H.PtrSize:= Sizeof(PtrUInt); H.ProgramName:= ExtractFileName(ParamStr(0)); + hh:= FileOpen(ParamStr(0), fmOpenRead or fmShareDenyNone); + try + H.ProgramFileSize:= FileSeek(hh, 0, soFromEnd); + finally + FileClose(hh); + end; fDF.Write(H, sizeof(H)); end; diff --git a/uutlProfilerBinaryFmt.inc b/uutlProfilerBinaryFmt.inc index bee655d..7531230 100644 --- a/uutlProfilerBinaryFmt.inc +++ b/uutlProfilerBinaryFmt.inc @@ -3,6 +3,7 @@ type VersionMagic: UInt32; PtrSize: byte; ProgramName: ShortString; + ProgramFileSize: Int64; end; TPBEventHeader = packed record @@ -22,7 +23,7 @@ type end; const - HEADER_VER_MAGIC = $b5bd0001; + HEADER_VER_MAGIC = $b5bd0002; PB_KIND_ENTER = $00; PB_KIND_EXIT = $01;