mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-26 09:20:45 +00:00
Compare commits
2 commits
e27ad9da85
...
df4a847b57
Author | SHA1 | Date | |
---|---|---|---|
|
df4a847b57 | ||
|
6dca7550b3 |
6 changed files with 27 additions and 57 deletions
|
@ -1,51 +1,13 @@
|
||||||
timeline_name="$1"
|
timeline_name="$1"
|
||||||
csv_filename="$2"
|
|
||||||
|
|
||||||
if [[ -n "$timeline_name" ]]; then
|
if [[ -n "$timeline_name" ]]; then
|
||||||
if [[ -z "$csv_filename" ]]; then
|
|
||||||
csv_filename="${timeline_name}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "====== Extracting & merging ${timeline_name} timelines ======"
|
echo "====== Extracting & merging ${timeline_name} timelines ======"
|
||||||
echo "" >>${csv_filename}.csv
|
|
||||||
echo "${timeline_name}" >>${csv_filename}.csv
|
|
||||||
|
|
||||||
extent_micros="timeExtentMicros"
|
|
||||||
timelines=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline.json" -print)
|
timelines=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline.json" -print)
|
||||||
for i in "${timelines[@]}"; do
|
dart run /Users/vodemn/Documents/GitHub/timeline_compare/bin/merge_timelines.dart $timelines
|
||||||
benchextract $i
|
|
||||||
extent_micros+="$(grep -A0 -h '"timeExtentMicros":' $i | grep -o " [0-9]*")"
|
|
||||||
done
|
|
||||||
echo $extent_micros | tr ' ' ',' >>${csv_filename}.csv
|
|
||||||
|
|
||||||
metrics=(
|
summaries=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline_summary.json" -print)
|
||||||
"average_frame_build_time_millis"
|
dart run /Users/vodemn/Documents/GitHub/timeline_compare/bin/merge_timeline_summaries.dart $summaries
|
||||||
"90th_percentile_frame_build_time_millis"
|
|
||||||
"99th_percentile_frame_build_time_millis"
|
|
||||||
"worst_frame_build_time_millis"
|
|
||||||
"average_rasterizer_time_millis"
|
|
||||||
"90th_percentile_rasterizer_time_millis"
|
|
||||||
"99th_percentile_rasterizer_time_millis"
|
|
||||||
"worst_frame_rasterizer_time_millis"
|
|
||||||
)
|
|
||||||
|
|
||||||
timeline_summaries=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline_summary.json" -print)
|
|
||||||
for i in "${timeline_summaries[@]}"; do
|
|
||||||
metrics[0]+="$(grep -A0 -h '"average_frame_build_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[1]+="$(grep -A0 -h '"90th_percentile_frame_build_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[2]+="$(grep -A0 -h '"99th_percentile_frame_build_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[3]+="$(grep -A0 -h '"worst_frame_build_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[4]+="$(grep -A0 -h '"average_frame_rasterizer_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[5]+="$(grep -A0 -h '"90th_percentile_frame_rasterizer_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[6]+="$(grep -A0 -h '"99th_percentile_frame_rasterizer_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
metrics[7]+="$(grep -A0 -h '"worst_frame_rasterizer_time_millis":' $i | grep -o " [0-9.]*")"
|
|
||||||
done
|
|
||||||
for metric in "${metrics[@]}"; do
|
|
||||||
echo $metric | tr ' ' ',' >>${csv_filename}.csv
|
|
||||||
done
|
|
||||||
|
|
||||||
benchmarks=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline.benchmark" -print)
|
|
||||||
benchmerge $benchmarks
|
|
||||||
else
|
else
|
||||||
echo "Provide the timeline name"
|
echo "Provide the timeline name"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -24,7 +24,6 @@ import 'package:lightmeter/screens/metering/components/shared/readings_container
|
||||||
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/shared/animated_dialog_picker/components/dialog_picker/widget_picker_dialog.dart';
|
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/shared/animated_dialog_picker/components/dialog_picker/widget_picker_dialog.dart';
|
||||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_container/widget_container_equipment_profile.dart';
|
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_container/widget_container_equipment_profile.dart';
|
||||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart';
|
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart';
|
||||||
import 'package:lightmeter/screens/settings/screen_settings.dart';
|
|
||||||
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
||||||
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
||||||
import 'package:mocktail/mocktail.dart';
|
import 'package:mocktail/mocktail.dart';
|
||||||
|
|
|
@ -2,18 +2,18 @@ flutter --version
|
||||||
fvm flutter build apk \
|
fvm flutter build apk \
|
||||||
--dart-define="cameraPreviewAspectRatio=240/320" \
|
--dart-define="cameraPreviewAspectRatio=240/320" \
|
||||||
--dart-define="cameraStubImage=assets/camera_stub_image.jpg" \
|
--dart-define="cameraStubImage=assets/camera_stub_image.jpg" \
|
||||||
--target=integration_test/generate_screenshots.dart \
|
--target=integration_test/metering_test.dart \
|
||||||
--profile \
|
--profile \
|
||||||
--flavor=dev
|
--flavor=dev
|
||||||
|
|
||||||
for n in {1..5}; do
|
for n in {1..25}; do
|
||||||
echo "============ Run number ${n} ============"
|
echo "============ Run number ${n} ============"
|
||||||
|
|
||||||
flutter drive \
|
flutter drive \
|
||||||
--dart-define="cameraPreviewAspectRatio=240/320" \
|
--dart-define="cameraPreviewAspectRatio=240/320" \
|
||||||
--dart-define="cameraStubImage=assets/camera_stub_image.jpg" \
|
--dart-define="cameraStubImage=assets/camera_stub_image.jpg" \
|
||||||
--driver=test_driver/screenshot_driver.dart \
|
--driver=test_driver/performance_driver.dart \
|
||||||
--target=integration_test/generate_screenshots.dart \
|
--target=integration_test/metering_test.dart \
|
||||||
--profile \
|
--profile \
|
||||||
--flavor=dev \
|
--flavor=dev \
|
||||||
--no-dds \
|
--no-dds \
|
||||||
|
@ -22,3 +22,4 @@ for n in {1..5}; do
|
||||||
--use-application-binary=build/app/outputs/flutter-apk/app-dev-profile.apk
|
--use-application-binary=build/app/outputs/flutter-apk/app-dev-profile.apk
|
||||||
done
|
done
|
||||||
|
|
||||||
|
sh integration_test/extract_benchmarks.sh toggle_iso_picker
|
|
@ -1,4 +1,3 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:integration_test/integration_test.dart';
|
import 'package:integration_test/integration_test.dart';
|
||||||
import 'package:lightmeter/application.dart';
|
import 'package:lightmeter/application.dart';
|
||||||
|
@ -14,17 +13,11 @@ import 'package:lightmeter/data/permissions_service.dart';
|
||||||
import 'package:lightmeter/data/shared_prefs_service.dart';
|
import 'package:lightmeter/data/shared_prefs_service.dart';
|
||||||
import 'package:lightmeter/data/volume_events_service.dart';
|
import 'package:lightmeter/data/volume_events_service.dart';
|
||||||
import 'package:lightmeter/environment.dart';
|
import 'package:lightmeter/environment.dart';
|
||||||
import 'package:lightmeter/generated/l10n.dart';
|
|
||||||
import 'package:lightmeter/providers/services_provider.dart';
|
import 'package:lightmeter/providers/services_provider.dart';
|
||||||
import 'package:lightmeter/providers/user_preferences_provider.dart';
|
import 'package:lightmeter/providers/user_preferences_provider.dart';
|
||||||
import 'package:lightmeter/res/dimens.dart';
|
import 'package:lightmeter/res/dimens.dart';
|
||||||
import 'package:lightmeter/res/theme.dart';
|
import 'package:lightmeter/res/theme.dart';
|
||||||
import 'package:lightmeter/screens/metering/components/bottom_controls/components/measure_button/widget_button_measure.dart';
|
|
||||||
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/iso_picker/widget_picker_iso.dart';
|
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/iso_picker/widget_picker_iso.dart';
|
||||||
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/shared/animated_dialog_picker/components/dialog_picker/widget_picker_dialog.dart';
|
|
||||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_container/widget_container_equipment_profile.dart';
|
|
||||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart';
|
|
||||||
import 'package:lightmeter/screens/settings/screen_settings.dart';
|
|
||||||
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
||||||
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
||||||
import 'package:mocktail/mocktail.dart';
|
import 'package:mocktail/mocktail.dart';
|
||||||
|
@ -149,12 +142,10 @@ void main() {
|
||||||
() async {
|
() async {
|
||||||
await tester.tap(find.byType(IsoValuePicker));
|
await tester.tap(find.byType(IsoValuePicker));
|
||||||
await tester.pumpAndSettle(Dimens.durationL);
|
await tester.pumpAndSettle(Dimens.durationL);
|
||||||
},
|
|
||||||
"open_iso_picker",
|
|
||||||
);
|
|
||||||
expect(find.byType(DialogPicker<IsoValue>), findsOneWidget);
|
|
||||||
await tester.tapCancelButton();
|
await tester.tapCancelButton();
|
||||||
expect(find.byType(DialogPicker<IsoValue>), findsNothing);
|
},
|
||||||
|
"toggle_iso_picker",
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"timeExtentMicros": 1201484
|
||||||
|
}
|
14
toggle_iso_picker_baseline_2023-10-02T15-09-53.735523.json
Normal file
14
toggle_iso_picker_baseline_2023-10-02T15-09-53.735523.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"buildTime": {
|
||||||
|
"averageFrameTimeMs": 10.006865276698612,
|
||||||
|
"percentile90FrameTimeMs": 21.645888888888887,
|
||||||
|
"percentile99FrameTimeMs": 21.645888888888887,
|
||||||
|
"worstFrameTimeMs": 26.134444444444448
|
||||||
|
},
|
||||||
|
"rasterizerTime": {
|
||||||
|
"averageFrameTimeMs": 23.913184792368128,
|
||||||
|
"percentile90FrameTimeMs": 57.51240740740741,
|
||||||
|
"percentile99FrameTimeMs": 57.51240740740741,
|
||||||
|
"worstFrameTimeMs": 78.87037037037038
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue