From b20853eb928bd2b07c0c8b96bc52a465d84b399f Mon Sep 17 00:00:00 2001 From: Georges Hatem Date: Thu, 9 May 2024 01:06:10 +0300 Subject: [PATCH 1/3] skip more chars --- entries/ghatem-fpc/src/OneBRC.lpr | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/entries/ghatem-fpc/src/OneBRC.lpr b/entries/ghatem-fpc/src/OneBRC.lpr index 4f4111c..fcd998a 100644 --- a/entries/ghatem-fpc/src/OneBRC.lpr +++ b/entries/ghatem-fpc/src/OneBRC.lpr @@ -459,6 +459,12 @@ procedure TOneBRC.ProcessData (aThreadNb: TThreadCount; aStartIdx: Int64; aEndId vLineStart := i; while i < aEndIdx do begin + + // can still skip some chars + if FData[i] > ';' then begin + Inc (I, 5); + end; + while FData[i] <> #10 do begin Inc (I); end; From 138742685ec32ffc986cd7f36c017ceecbdb61c7 Mon Sep 17 00:00:00 2001 From: Georges Hatem Date: Thu, 9 May 2024 01:12:43 +0300 Subject: [PATCH 2/3] unnecessary condition removed --- entries/ghatem-fpc/src/OneBRC.lpr | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/entries/ghatem-fpc/src/OneBRC.lpr b/entries/ghatem-fpc/src/OneBRC.lpr index fcd998a..cdba3e1 100644 --- a/entries/ghatem-fpc/src/OneBRC.lpr +++ b/entries/ghatem-fpc/src/OneBRC.lpr @@ -580,8 +580,7 @@ procedure TOneBRC.GenerateOutput; try vStations.BeginUpdate; for iStationName in FDictionary.FStationNames do begin - if iStationName <> '' then - vStations.Add(iStationName); + vStations.Add(iStationName); end; vStations.EndUpdate; vStations.CustomSort (@Compare); From b7f6422d482b5fb61dc847a5dfd8399a387964db Mon Sep 17 00:00:00 2001 From: Georges Hatem Date: Thu, 9 May 2024 01:23:36 +0300 Subject: [PATCH 3/3] remove unnecessary termination --- entries/ghatem-fpc/src/OneBRC.lpr | 1 - 1 file changed, 1 deletion(-) diff --git a/entries/ghatem-fpc/src/OneBRC.lpr b/entries/ghatem-fpc/src/OneBRC.lpr index cdba3e1..cbf75af 100644 --- a/entries/ghatem-fpc/src/OneBRC.lpr +++ b/entries/ghatem-fpc/src/OneBRC.lpr @@ -627,7 +627,6 @@ procedure TOneBRC.GenerateOutput; procedure TBRCThread.Execute; begin FProc (FThreadNb, FStart, FEnd); - Terminate; end; constructor TBRCThread.Create(aProc: TThreadProc; aThreadNb: TThreadCount; aStart: Int64; aEnd: Int64);