Hi Daniel, I would recommend, even though it probably doesn't make a
huge difference, not to use dub to run the executable for a test, since
it does a lot of extra work besides running the exe. Just do ./bulktest.

As for why redis is slow, not a clue. I'm using it in my vibe.d project
for session management, but haven't concerned myself with performance
(yet). I'd say it's likely something to do with i/o performance.

Version of the compiler: DMD64 D Compiler v2.071.2

Note, 2.075 is about to be released, so you may want to upgrade. This
version is quite old.

-Steve

Hi Steve, thanks a lot for your suggestions. It definitely saves some seconds when first building with dub and then just running the program.

The reason I'm stuck to DMD64 D Compiler v2.071.2 is because my project is also using a library named ocean which at the moment can only be compiled with that version of the compiler.

I also came up with a workaround to the i/o performance problem. Basically the operations were split into chunks and performed using async(). Even though it doesn't perform better than piping directly to the redis client (they operations are different and might not be comparable), the performance is acceptable. I'll post my solution below.
Thanks again, Daniel