Help optimize D solution to phone encoding problem: extremely slow performace.
Renato
renato at athaydes.com
Thu Jan 18 16:25:45 UTC 2024
On Wednesday, 17 January 2024 at 16:54:00 UTC, H. S. Teoh wrote:
> On Wed, Jan 17, 2024 at 07:57:02AM -0800, H. S. Teoh via
> Digitalmars-d-learn wrote: [...]
>> I'll push the code to github.
> [...]
>
> Here:
> https://github.com/quickfur/prechelt/blob/master/encode_phone.d
>
>
> T
BTW here's you main function so it can run on the benchmark:
```d
int main(string[] args)
{
bool countOnly = args.length > 1 ? (() {
final switch (args[1])
{
case "count":
return true;
case "print":
return false;
}
})() : false;
auto dictfile = args.length > 2 ? args[2] : "tests/words.txt";
auto input = args.length > 3 ? args[3] : "tests/numbers.txt";
Trie dict = loadDictionary(File(dictfile).byLine);
if (countOnly)
{
size_t count;
encodePhoneNumbers(File(input).byLine, dict, (phone,
match) { count++; });
writefln("%d", count);
}
else
{
encodePhoneNumbers(File(input).byLine, dict, (phone,
match) {
writefln("%s: %s", phone, match);
});
}
return 0;
}
```
More information about the Digitalmars-d-learn
mailing list