1. 11
  1.  

  2. 9

    First, it’s “amd64” or “x86-64”, not “x86”. Second, If you benchmark C code with gcc, you need at least “-O3 -march=native” in your CFLAGS before you can claim that you gave its optimizations a chance. “-O1” is a joke, “-O0” is not even used for debugging any more.

    1. 9

      Although you may be correct, the way you expressed it seems condescending and unnecessarily abrasive in my opinion.

      1. 3

        …but also so easy to fact check over morning coffee given that the code is right there. Download the six source files, compile and run the test program with “-O1” and “-O3 -march-native”.

        On my machine, the fastest run times between the two different optimizations at the 64k block size differed by %0.07 in favor of -O3.

        Parse that data as you will.

        1. 1

          the fastest run times

          When benchmarking, you want to eliminate or minimize the effect of results falsified by various CPU caches and branch prediction perceptrons. That’s why you look at the mean value, not at the fastest one. You also want to keep an eye on the standard deviation - if it’s too big, you have an unstable platform (maybe there are other processes competing for CPU time, or you have the “ondemand” cpufreq governor, etc.).

          Benchmarking is not something you do over morning coffee.

        2. 1

          I think the OP’s response was acceptable given the misleading nature of the article.

          1. [Comment from banned user removed]

            1. 3

              I never said you had to care about my opinion, but its feedback you can use or ignore as you please.