mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-26 09:20:45 +00:00
Compare commits
No commits in common. "df4a847b57e3cf5441bbe2bf3801aef0799a766a" and "e27ad9da8573c64bd39ecc7bfe6492a22e437137" have entirely different histories.
df4a847b57
...
e27ad9da85
6 changed files with 57 additions and 27 deletions
|
@ -1,13 +1,51 @@
|
||||||
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)
|
||||||
dart run /Users/vodemn/Documents/GitHub/timeline_compare/bin/merge_timelines.dart $timelines
|
for i in "${timelines[@]}"; do
|
||||||
|
benchextract $i
|
||||||
|
extent_micros+="$(grep -A0 -h '"timeExtentMicros":' $i | grep -o " [0-9]*")"
|
||||||
|
done
|
||||||
|
echo $extent_micros | tr ' ' ',' >>${csv_filename}.csv
|
||||||
|
|
||||||
summaries=$(find ./build -maxdepth 1 -name "${timeline_name}*.timeline_summary.json" -print)
|
metrics=(
|
||||||
dart run /Users/vodemn/Documents/GitHub/timeline_compare/bin/merge_timeline_summaries.dart $summaries
|
"average_frame_build_time_millis"
|
||||||
|
"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,6 +24,7 @@ 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/metering_test.dart \
|
--target=integration_test/generate_screenshots.dart \
|
||||||
--profile \
|
--profile \
|
||||||
--flavor=dev
|
--flavor=dev
|
||||||
|
|
||||||
for n in {1..25}; do
|
for n in {1..5}; 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/performance_driver.dart \
|
--driver=test_driver/screenshot_driver.dart \
|
||||||
--target=integration_test/metering_test.dart \
|
--target=integration_test/generate_screenshots.dart \
|
||||||
--profile \
|
--profile \
|
||||||
--flavor=dev \
|
--flavor=dev \
|
||||||
--no-dds \
|
--no-dds \
|
||||||
|
@ -22,4 +22,3 @@ for n in {1..25}; 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,3 +1,4 @@
|
||||||
|
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';
|
||||||
|
@ -13,11 +14,17 @@ 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';
|
||||||
|
@ -142,10 +149,12 @@ 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);
|
||||||
await tester.tapCancelButton();
|
|
||||||
},
|
},
|
||||||
"toggle_iso_picker",
|
"open_iso_picker",
|
||||||
);
|
);
|
||||||
|
expect(find.byType(DialogPicker<IsoValue>), findsOneWidget);
|
||||||
|
await tester.tapCancelButton();
|
||||||
|
expect(find.byType(DialogPicker<IsoValue>), findsNothing);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"timeExtentMicros": 1201484
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
"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