4 ms·
As the resident Nim optimizer, if you can reach some performance in C, you can reach it in Nim. With some work you can even reach the performance of code which
by mratsim 6y ago
As the resident Nim optimizer, if you can reach some performance in C, you can reach it in Nim.
With some work you can even reach the performance of code which is 95% assembly and has been tuned for years (i.e. matrix multiplication):
- Reaching C Quake code speed in Nim: https://forum.nim-lang.org/t/5124#32241 https://forum.nim-lang.org/t/5124#32241
- Reaching and going beyond OpenBLAS + OpenMP performance (almost pure Assembly): https://github.com/mratsim/weave/issues/68#issuecomment-571781332 https://github.com/mratsim/weave/issues/68#issuecomment-5717...
- Faster than C++ on Raytracing bench: https://github.com/mratsim/weave/tree/9f0c384f/demos/raytracing https://github.com/mratsim/weave/tree/9f0c384f/demos/raytrac...
- Faster than C++ on another Raytracing implementation: https://github.com/mratsim/trace-of-radiance/tree/v0.2.0 https://github.com/mratsim/trace-of-radiance/tree/v0.2.0
Also Nim is easy to integrate with Intel VTune, Apple Instruments and perf. You have full control on the data layout, prefetching and the same control as C over cache and memory usage if you so wish it (i.e. the GC is not a hindrance, you have easy escape hatches).