Skip to content

Commit 14a1da2

Browse files
committed
Tweaks.
1 parent ad05dcd commit 14a1da2

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

demos/benchmarks/lib/models/schema.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@ Schema schema = const Schema(([
77
Column.text('client_received_at'),
88
Column.text('server_created_at'),
99
]),
10+
// We don't query this, but we do sync these.
11+
// This is used to test large db sizes without having many
12+
// benchmark_items.
13+
Table('lists', [Column.text('name')]),
1014
]));

demos/benchmarks/lib/widgets/benchmark_items_page.dart

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'dart:async';
2+
import 'dart:convert';
23

34
import 'package:flutter/material.dart';
45

@@ -114,6 +115,40 @@ class _BenchmarkItemsWidgetState extends State<BenchmarkItemsWidget> {
114115
},
115116
icon: const Icon(Icons.sync));
116117

118+
final create100 = TextButton.icon(
119+
label: const Text('Create 100'),
120+
onPressed: () async {
121+
var items = <String>[];
122+
for (var i = 1; i <= 100; i++) {
123+
items.add('Batch Test $itemIndex/$i');
124+
}
125+
itemIndex += 1;
126+
await db.execute('''
127+
INSERT INTO
128+
benchmark_items(id, description, client_created_at)
129+
SELECT uuid(), e.value, datetime('now', 'subsecond') || 'Z'
130+
FROM json_each(?) e
131+
''', [jsonEncode(items)]);
132+
},
133+
icon: const Icon(Icons.create));
134+
135+
final create1000 = TextButton.icon(
136+
label: const Text('Create 1000'),
137+
onPressed: () async {
138+
var items = <String>[];
139+
for (var i = 1; i <= 1000; i++) {
140+
items.add('Batch Test $itemIndex/$i');
141+
}
142+
itemIndex += 1;
143+
await db.execute('''
144+
INSERT INTO
145+
benchmark_items(id, description, client_created_at)
146+
SELECT uuid(), e.value, datetime('now', 'subsecond') || 'Z'
147+
FROM json_each(?) e
148+
''', [jsonEncode(items)]);
149+
},
150+
icon: const Icon(Icons.create));
151+
117152
var buttons = Padding(
118153
padding: const EdgeInsets.all(8.0),
119154
child: OverflowBar(
@@ -123,6 +158,8 @@ class _BenchmarkItemsWidgetState extends State<BenchmarkItemsWidget> {
123158
children: <Widget>[
124159
Text(
125160
'First sync duration: ${syncDuration.inMilliseconds}ms / $count operations'),
161+
create100,
162+
create1000,
126163
resyncButton,
127164
clearButton,
128165
],

0 commit comments

Comments
 (0)