chore: strip temporary PerfLog instrumentation

Профилирование завершено (кадр спектра 8.3мс -> 1.7мс, UI 45% -> 26% ядра):
удаляем PerfLog.pas, doc/PERF_PROFILING.md и все // PERF-замеры из
WDSPEngine/HPSDRNetwork/PlutoBackend/AudioOutput/SpectrumView(+GL)/
WaterfallViewOpengl/WidebandView/MainForm. Сами оптимизации (full-raw
рендерер, дворд-блендеры, порог бэндплана) остаются.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 00:36:03 +03:00
co-authored by Claude Fable 5
parent 0adaff2d21
commit 01d78d148f
12 changed files with 10 additions and 521 deletions
+1 -32
View File
@@ -21,8 +21,7 @@ uses
Classes, SysUtils, Graphics, GraphType, ExtCtrls, Controls, Math,
AppTheme,
AlertOverlay, SampleRateOverlay, VfoOverlay, BandPlanOverlay,
WaterfallView, SMeterView, RulerView,
PerfLog; // ВРЕМЕННО (perf/cpu-profiling): зонные CPU-таймеры
WaterfallView, SMeterView, RulerView;
const
SV_CLR_BG = TColor($00101010);
@@ -1280,11 +1279,8 @@ var
LabelBandW, SrcCount: Integer;
GridFreqS, GridLine, pixPerStep: Double;
N, gridMult: Integer;
PerfT0, PerfTz: Int64; // PERF
begin
if FSpectrumBitmap = nil then Exit;
PerfT0 := PerfNow; // PERF
PerfTz := PerfT0; // PERF
W := FSpectrumBitmap.Width; H := FSpectrumBitmap.Height;
if (W <= 0) or (H <= 0) then Exit;
C := FSpectrumBitmap.Canvas;
@@ -1377,8 +1373,6 @@ begin
FGridBitmap.EndUpdate(False);
{$ENDIF}
end;
PerfAdd(pzUiSpecGrid, PerfTz); // PERF: ребилд кэша сетки (обычно 0)
PerfTz := PerfNow; // PERF
// ═══ Фаза 0: чистые вычисления — битмап не трогаем ═══════════════════════
// Дальше битмап обрабатывается тремя непрерывными фазами: raw (ScanLine) →
@@ -1431,23 +1425,17 @@ begin
end;
FSpPts[W] := Point(W-1, H); FSpPts[W+1] := Point(0, H);
PerfAdd(pzUiSpecCurve, PerfTz); // PERF: расчёт точек кривой
PerfTz := PerfNow; // PERF
// ═══ Фаза 1: raw — весь кадр одним локом ═════════════════════════════════
{$IFDEF DARWIN}
// Cocoa-вариант CopyGridToSpectrum идёт через Canvas.Draw — до RawBegin.
CopyGridToSpectrum(W, H);
PerfAdd(pzUiSpecGrid, PerfTz); // PERF: += полный перенос сетки в битмап
PerfTz := PerfNow; // PERF
{$ENDIF}
RawBegin;
try
{$IFNDEF DARWIN}
CopyGridToSpectrum(W, H);
PerfAdd(pzUiSpecGrid, PerfTz); // PERF: += полный memcpy сетки в битмап
PerfTz := PerfNow; // PERF
{$ENDIF}
// Полосы фильтра
@@ -1465,15 +1453,11 @@ begin
// Полосы фильтра слайсов (B+) — под градиентом/кривой, как в GL-вьюхе.
DrawSliceFilterBands(W, H);
PerfAdd(pzUiSpecBands, PerfTz); // PERF: полосы фильтра (raw-заливки)
PerfTz := PerfNow; // PERF
// Градиент (заливка под кривой)
if FFillSpectrum then
DrawSpectrumGradient(FSpPts, W, H);
PerfAdd(pzUiSpecCurve, PerfTz); // PERF: += градиент под кривой
PerfTz := PerfNow; // PERF
// Буква главного флага (A) на его полосе — только когда есть слайсы,
// иначе одиночный приём не засоряем.
@@ -1532,8 +1516,6 @@ begin
if FMarkerActive then DrawMarkerLineRaw(W, H);
if FBeaconMarkActive or FBeaconDecActive then DrawBeaconMarkersRaw(W, H);
PerfAdd(pzUiSpecOverlays, PerfTz); // PERF: raw-линии/текст/кривая/маркеры
PerfTz := PerfNow; // PERF
// Композиты оверлеев — внутри внешнего лока: их собственные BeginUpdate/
// EndUpdate становятся вложенными (только счётчик), иначе каждая пара на
@@ -1553,8 +1535,6 @@ begin
for i := 0 to FSliceOverlays.Count - 1 do
TVfoOverlay(FSliceOverlays[i]).DrawOverlay(FSpectrumBitmap, W, H);
PerfAdd(pzUiComposites, PerfTz); // PERF: композиты бэндплан/панель/флаги
PerfTz := PerfNow; // PERF
finally
RawEnd;
end;
@@ -1582,8 +1562,6 @@ begin
{$ENDIF}
end;
PerfAdd(pzUiSpecAlpha, PerfTz); // PERF: RawEnd (EndUpdate) + редкий ADC-путь
PerfAdd(pzUiDrawSpectrum, PerfT0); // PERF: CPU-рендер кадра спектра
end;
// ────────────────────────────────────────────────────────────────────────────
@@ -1591,11 +1569,8 @@ end;
// ────────────────────────────────────────────────────────────────────────────
procedure TSpectrumView.DrawWaterfall;
var T0: Int64; // PERF
begin
T0 := PerfNow; // PERF
FWaterfall.DrawWaterfall;
PerfAdd(pzUiDrawWaterfall, T0); // PERF: CPU-рендер строк водопада
end;
procedure TSpectrumView.DrawRuler;
@@ -1610,20 +1585,14 @@ end;
procedure TSpectrumView.PaintSpectrum(Sender: TObject);
var
PB: TPaintBox;
T0: Int64; // PERF
begin
T0 := PerfNow; // PERF
PB := TPaintBox(Sender);
PB.Canvas.Draw(0, 0, FSpectrumBitmap);
PerfAdd(pzUiPaintSpectrum, T0); // PERF: блит битмапа спектра (Qt6 canvas)
end;
procedure TSpectrumView.PaintWaterfall(Sender: TObject);
var T0: Int64; // PERF
begin
T0 := PerfNow; // PERF
FWaterfall.PaintWaterfall(Sender);
PerfAdd(pzUiPaintWaterfall, T0); // PERF: блит битмапа водопада (Qt6 canvas)
end;
procedure TSpectrumView.PaintRuler(Sender: TObject);