benchmark: create separate benchmarks for jp and en search
All checks were successful
Build and test / build (push) Successful in 6m53s

This commit is contained in:
2026-04-13 20:18:43 +09:00
parent d1e2fa3748
commit cbaa9ec6b3
3 changed files with 64 additions and 9 deletions

View File

@@ -1,5 +1,7 @@
import './search/word_search.dart';
import './search/english_word_search.dart';
import './search/japanese_word_search.dart';
Future<void> main() async {
await WordSearchBenchmark.main();
await EnglishWordSearchBenchmark.main();
await JapaneseWordSearchBenchmark.main();
}

View File

@@ -4,23 +4,23 @@ import 'package:sqflite_common/sqlite_api.dart';
import '../../test/search/setup_database_connection.dart';
class WordSearchBenchmark extends AsyncBenchmarkBase {
class EnglishWordSearchBenchmark extends AsyncBenchmarkBase {
Database? connection;
static final List<String> searchTerms = [
'kana',
'kanji',
'kawaii',
'cute',
'sushi',
'ramen',
];
WordSearchBenchmark() : super('WordSearchBenchmark');
EnglishWordSearchBenchmark() : super('EnglishWordSearchBenchmark');
static Future<void> main() async {
print('Running WordSearchBenchmark...');
await WordSearchBenchmark().report();
print('Finished WordSearchBenchmark');
print('Running EnglishWordSearchBenchmark...');
await EnglishWordSearchBenchmark().report();
print('Finished EnglishWordSearchBenchmark');
}
@override
@@ -31,7 +31,11 @@ class WordSearchBenchmark extends AsyncBenchmarkBase {
@override
Future<void> run() async {
for (final term in searchTerms) {
await connection!.jadbSearchWord(term);
final result = await connection!.jadbSearchWord(term);
assert(
result?.isNotEmpty ?? false,
'Expected search results for term "$term"',
);
}
}

View File

@@ -0,0 +1,49 @@
import 'package:benchmark_harness/benchmark_harness.dart';
import 'package:jadb/search.dart';
import 'package:sqflite_common/sqlite_api.dart';
import '../../test/search/setup_database_connection.dart';
class JapaneseWordSearchBenchmark extends AsyncBenchmarkBase {
Database? connection;
static final List<String> searchTerms = [
'仮名',
'漢字',
'かわいい',
'すし',
'ラメン',
];
JapaneseWordSearchBenchmark() : super('JapaneseWordSearchBenchmark');
static Future<void> main() async {
print('Running JapaneseWordSearchBenchmark...');
await JapaneseWordSearchBenchmark().report();
print('Finished JapaneseWordSearchBenchmark');
}
@override
Future<void> setup() async {
connection = await setupDatabaseConnection();
}
@override
Future<void> run() async {
for (final term in searchTerms) {
final result = await connection!.jadbSearchWord(term);
assert(
result?.isNotEmpty ?? false,
'Expected search results for term "$term"',
);
}
}
@override
Future<void> teardown() async {
await connection?.close();
}
// @override
// Future<void> exercise() => run();
}