added CPU metering for backend polar computation (key "BACKEND_POLARS")

This commit is contained in:
Axel Uhl
2026-03-13 11:50:52 +01:00
parent 6083a0bf3d
commit a904a14b23
3 changed files with 7 additions and 6 deletions
@@ -12,5 +12,5 @@ import com.sap.sse.metering.CPUMeter;
*
*/
public enum CPUMeteringType {
NET_POINTS_SUM, COMPETITORS_FROM_BEST_TO_WORST, MANEUVER_DETECTION, QUICK_RANKS, CROSS_TRACK_ERROR, SIMULATOR, LEADERBOARD_COMPUTE_DTO, MARK_PASSINGS;
NET_POINTS_SUM, COMPETITORS_FROM_BEST_TO_WORST, MANEUVER_DETECTION, QUICK_RANKS, CROSS_TRACK_ERROR, SIMULATOR, LEADERBOARD_COMPUTE_DTO, MARK_PASSINGS, BACKEND_POLARS;
}
@@ -4,6 +4,7 @@ import java.util.HashSet;
import java.util.Set;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.CPUMeteringType;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
import com.sap.sailing.domain.common.LegType;
@@ -54,7 +55,9 @@ public class GPSFixMovingWithPolarContext implements LegTypePolarClusterKey, Ang
this.angleClusterGroup = angleClusterGroup;
this.windSourcesToExcludeForSpeed = collectWindSourcesToIgnoreForSpeed();
this.absTrueWindAngle = computeTrueWindAngleAbsolute();
this.wind = race.getWindWithConfidence(fix.getPosition(), fix.getTimePoint(), windSourcesToExcludeForSpeed);
this.wind = race.getTrackedRegatta().getCPUMeter().callWithCPUMeter(
() -> race.getWindWithConfidence(fix.getPosition(), fix.getTimePoint(), windSourcesToExcludeForSpeed),
CPUMeteringType.BACKEND_POLARS.name());
this.boatSpeed = computeBoatSpeed();
}
@@ -173,8 +173,7 @@ public class PolarDataMiner {
Processor<GPSFixMovingWithPolarContext, GPSFixMovingWithPolarContext> filteringProcessor = new ParallelFilteringProcessor<GPSFixMovingWithPolarContext>(
GPSFixMovingWithPolarContext.class, executor, filteringResultReceivers, new PolarFixFilterCriteria(
backendPolarSheetGenerationSettings.getPctOfLeadingCompetitorsToInclude()));
Collection<Processor<GPSFixMovingWithPolarContext, ?>> enrichingResultReceivers = Arrays
.asList(filteringProcessor);
Collection<Processor<GPSFixMovingWithPolarContext, ?>> enrichingResultReceivers = Arrays.asList(filteringProcessor);
AbstractEnrichingProcessor<GPSFixMovingWithOriginInfo, GPSFixMovingWithPolarContext> enrichingProcessor = new AbstractEnrichingProcessor<GPSFixMovingWithOriginInfo, GPSFixMovingWithPolarContext>(
GPSFixMovingWithOriginInfo.class, GPSFixMovingWithPolarContext.class, executor,
enrichingResultReceivers) {
@@ -186,8 +185,7 @@ public class PolarDataMiner {
return result;
}
};
Collection<Processor<GPSFixMovingWithOriginInfo, ?>> preFilterResultReceivers = Arrays
.asList(enrichingProcessor);
Collection<Processor<GPSFixMovingWithOriginInfo, ?>> preFilterResultReceivers = Arrays.asList(enrichingProcessor);
preFilteringProcessor = new ParallelFilteringProcessor<GPSFixMovingWithOriginInfo>(
GPSFixMovingWithOriginInfo.class, executor, preFilterResultReceivers,
new FilterCriterion<GPSFixMovingWithOriginInfo>() {