https://www.techempower.com/benchmarks/
I was expecting Rust or C level of performance for D. Instead, D performs on the same level as Ruby and Python.
https://www.techempower.com/benchmarks/
I was expecting Rust or C level of performance for D. Instead, D performs on the same level as Ruby and Python.
As far as the Techempower results go, I'm pretty sure it is not a GC issue. It could be the postgres implementation issue. Someone has to work with upstream to tune and fix the issues.
Contributing to such benchmarks require time and effort. A small community can do only so much in their free time.
Even though such benchmarks are good marketing, the D community is not interested in participating such benchmarks (although I'm quoting one post from the D forum, the trend is same).
https://forum.dlang.org/post/mailman.2866.1587920400.31109.d...
For native code, D has roughly C++ levels of performance with much simpler/nicer code.
What about the framework leads to this, and how could it be changed to get better performance?
Mostly, pay attention and profile to get better performance.
---
For example, if you look at rust, you see that the top(actix) and the middle frameworks have some big distance. The former autor of actix care to get good result, others are just in the step of "have something working nicely"
GC, untraced references, reference counting, stack and global memory segment allocations, OS system buffers.
The programmer also needs to do it in a way that works for a particular program instead of doing new everywhere.
The advantage being that having a GC around is much more productive for the workflows that don't need such hand tuning.
Actix is a framework, built in Rust and non-GC'd, that performs significantly better than any of the Go frameworks. So GC does seem to have some effect.
That being said, I agree the GC is unlikely to be the problem for D's performance (in this case).
https://attractivechaos.github.io/plb/
https://github.com/kostya/benchmarks
NoGC comparison
http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...