On Monday, 14 March 2022 at 19:05:41 UTC, Ali Çehreli wrote:

Yes, better but not much: 37 seconds vs. 50+ seconds on my system.

Even though I am pretty sure the OP has access to the keys and the values separately, if it helps, I used the following code to separate the keys and values:

[snip]

shared static this() {
  cp949_table = make_cp949_table();
}

Yeah, dmd's -O performance with those tables is still very poor.

Ali

Thank you for this. This works although I could not reach the same speed as you. I wonder if people with less memory as me (16 GB) will still be able to compile it.

DMD (DMD64 D Compiler v2.098.1)
```
$ time dub test --compiler=dmd --build=release

real    2m11,438s
user    2m11,134s
sys     0m0,153s
```
LDC (LDC - the LLVM D compiler (1.26.0): based on DMD v2.096.1 and LLVM 7.0.1)
```
$ time dub test --compiler=ldc2 --build=release

real    0m18,466s
user    0m18,099s
sys     0m0,151s
```

But this is definitely better than failing with an error. I have not yet tried the -lowmem flag. I'll try that later. I think I'll use your solution for now as that works and hopefully people won't have to recompile everything so often. Usually this should just get compiled once and be good with it :)

Reply via email to