FYI.

I finished running timing comparisons with D. They are very consistent, with D 
a tad slower at a constant ratio. Since most of the work is done in the 
threading operations I suspect that's where the difference is. I used the 
latest LDC 1.16.0 D compiler (it uses LLVM), and Nim was compiled using GCC 
8.3.1.

D source: 
[https://gist.github.com/jzakiya/ae93bfa03dbc8b25ccc7f97ff8ad0f61](https://gist.github.com/jzakiya/ae93bfa03dbc8b25ccc7f97ff8ad0f61)
    
    
                N          |       Nim       |       D       | Ratio |
        -------------------|-----------------|---------------|-------|
           100_000_000_000 |       4.628     |      4.619    |  1.00 |
           500_000_000_000 |      23.308     |     24.071    |  1.03 |
         1_000_000_000_000 |      47.966     |     49.703    |  1.04 |
         5_000_000_000_000 |     265.746     |    276.847    |  1.04 |
        10_000_000_000_000 |     572.803     |    590.881    |  1.03 |
        50_000_000_000_000 |    3009.485     |   3046.913    |  1.01 |
       100_000_000_000_000 |    6307.521     |   6594.283    |  1.04 |
       200_000_000_000_000 |   13603.531     |  14706.743    |  1.08 |
    
    
    Run

I have a Rust version of the previous (older) algorithm I will convert (at some 
time), and may finally try to do a C++, since people want to see a C++ version.

Actually, this algorithm is a very good general benchmark because it exercises 
multiple components of a language (threading, memory allocation/management, 
compile time features, looping structures, standard libs, etc).

Reply via email to