Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@
/windows

*.g.dart
*.realm.dart
*.json
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ Run the following to get started:
```
flutter create .
flutter pub run build_runner build
dart run realm generate
```
16 changes: 8 additions & 8 deletions lib/executor/realm_executor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'dart:io';

import 'package:isar_benchmark/executor/executor.dart';
import 'package:isar_benchmark/models/model.dart';
import 'package:isar_benchmark/models/realm_model.dart';
import 'package:isar_benchmark/models/realm_model_c.dart';
import 'package:realm/realm.dart' hide RealmModel;

class RealmExecutor extends Executor<Realm> {
Expand All @@ -14,7 +14,7 @@ class RealmExecutor extends Executor<Realm> {
@override
FutureOr<Realm> prepareDatabase() {
final config = Configuration.local(
[RealmModel.schema],
[RealmModelC.schema],
path: realmFile,
);
return Realm(config);
Expand All @@ -38,15 +38,15 @@ class RealmExecutor extends Executor<Realm> {
},
(realm) {
for (var id in idsToGet) {
realmToModel(realm.find<RealmModel>(id)!);
realmToModel(realm.find<RealmModelC>(id)!);
}
},
);
}

@override
Stream<int> insert(List<Model> models) {
late List<RealmModel> realmModels;
late List<RealmModelC> realmModels;
return runBenchmark(prepare: (realm) {
realmModels = models.map(modelToRealm).toList();
}, (realm) {
Expand All @@ -66,7 +66,7 @@ class RealmExecutor extends Executor<Realm> {
});
},
(realm) {
final objects = realm.query<RealmModel>("archived == true");
final objects = realm.query<RealmModelC>("archived == true");
realm.write(() {
for (final object in objects) {
object.archived = false;
Expand All @@ -78,7 +78,7 @@ class RealmExecutor extends Executor<Realm> {

@override
Stream<int> delete(List<Model> models) {
late List<RealmModel> modelsToDelete;
late List<RealmModelC> modelsToDelete;
return runBenchmark(
prepare: (realm) {
final realmModels = models.map(modelToRealm).toList();
Expand Down Expand Up @@ -106,7 +106,7 @@ class RealmExecutor extends Executor<Realm> {
});
},
(realm) {
final results = realm.query<RealmModel>(
final results = realm.query<RealmModelC>(
"ANY words contains 'time' OR title CONTAINS 'a'");
for (var result in results) {
realmToModel(result);
Expand All @@ -126,7 +126,7 @@ class RealmExecutor extends Executor<Realm> {
},
(realm) {
final results =
realm.query<RealmModel>('archived == true SORT(title ASCENDING)');
realm.query<RealmModelC>('archived == true SORT(title ASCENDING)');
for (var result in results) {
realmToModel(result);
}
Expand Down
12 changes: 6 additions & 6 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ class App extends StatelessWidget {
final String directory;

const App({
Key? key,
super.key,
required this.directory,
required this.deviceName,
}) : super(key: key);
});

@override
Widget build(BuildContext context) {
Expand All @@ -62,8 +62,8 @@ class App extends StatelessWidget {
onSecondary: Color(0xff243140),
error: Color(0xffffb4a9),
onError: Color(0xff680003),
background: Color(0xff1b1b1d),
onBackground: Color(0xffe3e2e6),
surfaceContainer: Color(0xff1b1b1d),
onSurfaceVariant: Color(0xffe3e2e6),
surface: Color(0xff1b1b1d),
onSurface: Color(0xffe3e2e6),
),
Expand All @@ -89,10 +89,10 @@ class BenchmarkArea extends StatefulWidget {
final String directory;

const BenchmarkArea({
Key? key,
super.key,
required this.directory,
required this.deviceName,
}) : super(key: key);
});

@override
State<BenchmarkArea> createState() => _BenchmarkAreaState();
Expand Down
15 changes: 7 additions & 8 deletions lib/models/realm_model.dart → lib/models/realm_model_c.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import 'package:isar_benchmark/models/model.dart';
import 'package:realm/realm.dart' hide RealmModel;
import 'package:realm/realm.dart' as realm;
import 'package:realm/realm.dart';

part 'realm_model.g.dart';
part 'realm_model_c.realm.dart';

@realm.RealmModel()
class _RealmModel {
@RealmModel()
class _RealmModelC {
@PrimaryKey()
late int id;

Expand All @@ -20,8 +19,8 @@ class _RealmModel {
late bool archived;
}

RealmModel modelToRealm(Model model) {
return RealmModel(
RealmModelC modelToRealm(Model model) {
return RealmModelC(
model.id,
model.title,
model.wordCount,
Expand All @@ -31,7 +30,7 @@ RealmModel modelToRealm(Model model) {
);
}

Model realmToModel(RealmModel model) {
Model realmToModel(RealmModelC model) {
return Model(
id: model.id,
title: model.title,
Expand Down
7 changes: 3 additions & 4 deletions lib/ui/result_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ class ResultChart extends StatelessWidget {
final List<RunnerResult> results;

const ResultChart({
Key? key,
super.key,
required this.results,
}) : super(key: key);
});

@override
Widget build(BuildContext context) {
Expand All @@ -20,7 +20,7 @@ class ResultChart extends StatelessWidget {
}
}
return BarChart(
swapAnimationDuration: Duration.zero,
duration: Duration.zero,
BarChartData(
barTouchData: getBarTouchData(theme),
titlesData: getTitlesData(theme),
Expand Down Expand Up @@ -51,7 +51,6 @@ class ResultChart extends StatelessWidget {
return BarTouchData(
enabled: false,
touchTooltipData: BarTouchTooltipData(
tooltipBgColor: Colors.transparent,
tooltipPadding: const EdgeInsets.all(0),
tooltipMargin: 5,
getTooltipItem: (_, int i, __, ___) {
Expand Down
12 changes: 6 additions & 6 deletions lib/ui/result_container.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import 'dart:io';
import 'dart:ui' as ui;

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:isar_benchmark/runner.dart';
import 'package:path_provider/path_provider.dart';
import 'package:share_plus/share_plus.dart';
import 'dart:ui' as ui;

import 'result_chart.dart';

Expand All @@ -17,11 +17,11 @@ class ResultContainer extends StatelessWidget {
final int objectCount;

const ResultContainer({
Key? key,
super.key,
required this.deviceName,
required this.results,
required this.objectCount,
}) : super(key: key);
});

@override
Widget build(BuildContext context) {
Expand All @@ -39,12 +39,12 @@ class ResultContainer extends StatelessWidget {
children: [
Text(
results.first.benchmark.name,
style: theme.textTheme.headline6,
style: theme.textTheme.headlineLarge,
),
Text(
'$objectCount Objects on $deviceName',
style:
theme.textTheme.subtitle2!.copyWith(color: theme.hintColor),
theme.textTheme.bodyMedium!.copyWith(color: theme.hintColor),
),
const SizedBox(height: 10),
Expanded(
Expand All @@ -65,6 +65,6 @@ class ResultContainer extends StatelessWidget {
final pngBytes = byteData!.buffer.asUint8List();
final imgFile = File('$directory/photo.png');
imgFile.writeAsBytes(pngBytes);
await Share.shareFiles([imgFile.path]);
await Share.shareXFiles([XFile(imgFile.path)]);
}
}
Loading