11import 'dart:async' ;
2+ import 'dart:convert' ;
23
34import '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