Thanks for the feedback. It is fair to call this a naive microbenchmark indeed, but the goal of the posts will be more clear once I write some more. Actually -O2 or -O3 makes little difference here, but I'll might spend some time looking at clang and gcc side by side. On Sun, Mar 16, 2014 at 11:06 PM, Coda Highland <chighland@xxxxxxxxx> wrote: > On Sun, Mar 16, 2014 at 2:56 PM, ivan starkov <istarkov@xxxxxxxxx> wrote: > > And add c++ compiler flags > > I think that compiling with defaults at -O2 is the best representation > of performance for a naive microbenchmark like this. Otherwise you > could get into an argument about why one language gets permission to > do more fine-tuning than another, or how relevant such a benchmark is > to real-world workloads, or whether or not you should tune the > environment to be optimized for the specific input you're providing. > > Meanwhile, clang and gcc (more specifically, libc++ and libstdc++) > could potentially provide noticeably different implementations of a > hash table. (I don't know if they actually DO or not, I haven't > looked.) The compilers could also choose different assembly-level > techniques for translating the algorithm into machine code. That, I > think, is a substantial enough potential difference for research. > > /s/ Adam > >