Skip to Content
Other Tools & AdaptersPerformance Benchmarks

Performance Benchmarks

Tracelet’s core Dart algorithms are continuously benchmarked against strict performance thresholds. This ensures that features like Kalman filtering, point-in-polygon geofencing, and battery budgeting remain exceptionally lightweight and do not cause battery drain.

The interactive graph below automatically visualizes the history of key benchmark metrics from recent commits. The data is pulled dynamically from the BENCHMARK.md file tracked in the repository.

Lower values (µs/op) represent better performance.

Loading graph...

Benchmark Descriptions

BenchmarkDescriptionHot Path
kalman_process_singleSingle Kalman filter predict+update cycleEvery GPS fix
kalman_process_100_fixes100 sequential GPS fixes through Kalman filterSustained tracking
kalman_process_1k_fixes1000 sequential GPS fixes through Kalman filterLong session
kalman_resetReset filter state (Float64List fillRange)Mode change
haversine_singleSingle haversine distance calculationEvery GPS fix (3+ calls)
haversine_1k_pairs1000 sequential haversine calculationsBatch processing
pip_4vPoint-in-polygon, 4-vertex polygonSimple geofence
pip_10vPoint-in-polygon, 10-vertex polygonMedium polygon
pip_50vPoint-in-polygon, 50-vertex polygonComplex polygon
pip_100vPoint-in-polygon, 100-vertex polygonDetailed boundary
pip_500vPoint-in-polygon, 500-vertex polygonHigh-detail polygon
geofence_eval_10_circularEvaluate 10 circular geofencesSmall deployment
geofence_eval_100_circularEvaluate 100 circular geofencesMedium deployment
geofence_eval_500_circularEvaluate 500 circular geofencesLarge deployment
geofence_eval_10_polygon_6vEvaluate 10 polygon geofences (6 vertices each)Polygon zones
geofence_eval_50_polygon_6vEvaluate 50 polygon geofences (6 vertices each)Many polygon zones
processor_1k_fixesFull LocationProcessor pipeline, 1000 fixesCore tracking loop
processor_1k_adaptiveLocationProcessor with adaptive mode, 1000 fixesBattery-aware tracking
trip_manager_5k_waypointsTripManager accumulating 5000 waypointsLong trip
schedule_parseParse a schedule stringSchedule evaluation
schedule_matchesCheck if time matches a scheduleSchedule evaluation
schedule_isWithin_5_entriesCheck 5 schedule entriesMulti-schedule
adaptive_computeAdaptiveSamplingEngine single computationEvery GPS fix (adaptive)
location_fromMapDeserialize Location from platform mapEvery GPS fix
location_toMapSerialize Location to mapPersistence/HTTP
location_fromMap_toMap_roundtripFull serialization round-tripLegacy path
location_copyWithCoordsCopy Location with new coords (optimized)Kalman output
geofence_fromMap_circularDeserialize circular geofenceGeofence loading
geofence_fromMap_polygonDeserialize polygon geofence with verticesPolygon loading
delta_encode_10Delta-encode batch of 10 locationsHTTP sync
delta_encode_100Delta-encode batch of 100 locationsHTTP sync
delta_encode_500Delta-encode batch of 500 locationsBulk sync
delta_decode_10Delta-decode batch of 10 locationsServer restore
delta_decode_100Delta-decode batch of 100 locationsServer restore
delta_decode_500Delta-decode batch of 500 locationsBulk restore
delta_roundtrip_100Full encode→decode round-trip, 100 locationsCorrectness path
battery_budget_single_sampleSingle battery sample processingEvery battery read
battery_budget_60_samples60 samples (1-hour simulation)Sustained tracking
battery_budget_heavy_drain120 samples with aggressive drainWorst-case budget
carbon_trip_100_locationsFull trip with 100 GPS fixesTrip completion
carbon_onLocationPer-location carbon accountingEvery GPS fix
carbon_setActivityActivity type switchingActivity change
carbon_cumulative_reportGenerate cumulative report (10 trips)Report request
persist_decider_locationLocation persist decision (all modes)Every GPS fix
persist_decider_geofenceGeofence persist decision (all modes)Geofence event
config_fromMapDeserialize full Config from mapConfig restore
config_toMapSerialize full Config to mapConfig persist
config_roundtripFull Config serialization round-tripConfig update
state_fromMapDeserialize State from mapState restore
state_toMapSerialize State to mapState persist
route_context_toMapSerialize RouteContext to mapRoute context attach
route_context_fromMapDeserialize RouteContext from mapRoute context restore
route_context_roundtripFull RouteContext serialization round-tripRoute context update
sync_body_context_toMap_50Serialize SyncBodyContext with 50 locationsSync body build
sync_body_context_fromMap_50Deserialize SyncBodyContext with 50 locationsSync body restore
http_config_ssl_toMapSerialize HttpConfig with SSL pinning fieldsConfig persist
http_config_ssl_fromMapDeserialize HttpConfig with SSL pinning fieldsConfig restore
http_config_ssl_roundtripFull HttpConfig+SSL serialization round-tripConfig update

For the full testing methodologies, refer to the BENCHMARK.md file in the Tracelet repository root.

Last updated on