mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
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:
+1
-32
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user