Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
2c6894aa82
|
@@ -0,0 +1,7 @@
|
|||||||
|
import './search/english_word_search.dart';
|
||||||
|
import './search/japanese_word_search.dart';
|
||||||
|
|
||||||
|
Future<void> main() async {
|
||||||
|
await EnglishWordSearchBenchmark.main();
|
||||||
|
await JapaneseWordSearchBenchmark.main();
|
||||||
|
}
|
||||||
@@ -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 EnglishWordSearchBenchmark extends AsyncBenchmarkBase {
|
||||||
|
Database? connection;
|
||||||
|
|
||||||
|
static final List<String> searchTerms = [
|
||||||
|
'kana',
|
||||||
|
'kanji',
|
||||||
|
'cute',
|
||||||
|
'sushi',
|
||||||
|
'ramen',
|
||||||
|
];
|
||||||
|
|
||||||
|
EnglishWordSearchBenchmark() : super('EnglishWordSearchBenchmark');
|
||||||
|
|
||||||
|
static Future<void> main() async {
|
||||||
|
print('Running EnglishWordSearchBenchmark...');
|
||||||
|
await EnglishWordSearchBenchmark().report();
|
||||||
|
print('Finished EnglishWordSearchBenchmark');
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> setup() async {
|
||||||
|
connection = await setup_database_connection();
|
||||||
|
}
|
||||||
|
|
||||||
|
@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();
|
||||||
|
}
|
||||||
@@ -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 setup_database_connection();
|
||||||
|
}
|
||||||
|
|
||||||
|
@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();
|
||||||
|
}
|
||||||
Generated
+3
-3
@@ -3,7 +3,7 @@
|
|||||||
"jmdict-src": {
|
"jmdict-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-lh46uougUzBrRhhwa7cOb32j5Jt9/RjBUhlVjwVzsII=",
|
"narHash": "sha256-RQuZqSv5aqSKOpI3ajQAR5y/kobLTBOg1t2wOhZsr1g=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e.gz"
|
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e.gz"
|
||||||
},
|
},
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
"jmdict-with-examples-src": {
|
"jmdict-with-examples-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-5oS2xDyetbuSM6ax3LUjYA3N60x+D3Hg41HEXGFMqLQ=",
|
"narHash": "sha256-11iYyz3Uf6QzM9l5DcSB+IdLaq+XOGe5zilVPc1GY14=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e_examp.gz"
|
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e_examp.gz"
|
||||||
},
|
},
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"kanjidic2-src": {
|
"kanjidic2-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-orSeQqSxhn9TtX3anYtbiMEm7nFkuomGnIKoVIUR2CM=",
|
"narHash": "sha256-tLQYQf0/C6yaW+QRq6/Uyy8rq+v3+yKLZXuznRnbkrQ=",
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"url": "https://www.edrdg.org/kanjidic/kanjidic2.xml.gz"
|
"url": "https://www.edrdg.org/kanjidic/kanjidic2.xml.gz"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -87,6 +87,7 @@
|
|||||||
sqlfluff
|
sqlfluff
|
||||||
];
|
];
|
||||||
env = {
|
env = {
|
||||||
|
LD_LIBRARY_PATH = "${pkgs.sqlite.out}/lib";
|
||||||
LIBSQLITE_PATH = "${pkgs.sqlite.out}/lib/libsqlite3.so";
|
LIBSQLITE_PATH = "${pkgs.sqlite.out}/lib/libsqlite3.so";
|
||||||
JADB_PATH = "result/jadb.sqlite";
|
JADB_PATH = "result/jadb.sqlite";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -211,11 +211,9 @@ Future<List<ScoredEntryId>> _queryEnglish(
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
"score" DESC,
|
"score" DESC,
|
||||||
"${JMdictTableNames.sense}"."entryId" ASC
|
"${JMdictTableNames.sense}"."entryId" ASC
|
||||||
LIMIT ?
|
|
||||||
OFFSET ?
|
|
||||||
'''
|
'''
|
||||||
.trim(),
|
.trim(),
|
||||||
[word, word, word, '%${word.replaceAll('%', '')}%', pageSize, offset],
|
[word, word, word, '%${word.replaceAll('%', '')}%'],
|
||||||
);
|
);
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
@@ -33,6 +33,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.13.0"
|
version: "2.13.0"
|
||||||
|
benchmark_harness:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: benchmark_harness
|
||||||
|
sha256: a2d3c4c83cac0126bf38e41eaf7bd9ed4f6635f1ee1a0cbc6f79fa9736c62cbd
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.4.0"
|
||||||
boolean_selector:
|
boolean_selector:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ dependencies:
|
|||||||
xml: ^6.5.0
|
xml: ^6.5.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
benchmark_harness: ^2.4.0
|
||||||
lints: ^6.0.0
|
lints: ^6.0.0
|
||||||
test: ^1.25.15
|
test: ^1.25.15
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user