Denis Yaroshevskiy

Results 68 comments of Denis Yaroshevskiy

Remembered about this old post by Sean Parent on the subject: http://stlab.cc/tips/small-object-optimizations.html It's a tricky exercise in general.

Upd: Seems like the issue goes away if I use BENCHMARK instead of BENCHMARK_TEMPLATE. Is this even possible?

That makes sence. Didn't reproduce since though. Here is gist, I didn't know about it, don't use github that often: https://gist.github.com/DenisYaroshevskiy/c1c28e3fd95f8a7eb53ddab40dc8464f

This is mine compilation line. `clang++ --std=c++14 -O3 -Werror -Wall $1 -I /space/google_benchmarks/include/ /space/google_benchmarks/build/src/libbenchmark.a set_union_bench.cc ` Reproduced the bug again, no problem. I use https://github.com/google/benchmark/releases/tag/v1.2.0 But previously it manifested itself...

I can answer faster in Telegram, if it helps: @dyaroshev And the problem still goes away, if you do functions instead.

Yes, libc++, out of the box, no hand waving! I even have the Wall on! Do you use c++14?

Ok, seems like the older version of clang is the problem - I reproduced your compilation error on quick-bench. Here you go, a fixed gist: https://gist.github.com/DenisYaroshevskiy/604f1e331b384579b2a4fb5eac3ac8ef I even made it...

Hi! I found a repro, that kinda works on quick-bench too. Here is the code: http://quick-bench.com/pFHnrUKpCRJMgTPBH6pcZImXYIw Enabling/Disabling CurrentSetUnion makes LinearSetUnion slower by a millisecond. On my machine, things are much...

Great work. I'm not 100% sure that function alignment is exactly the reason - since I've seen examples where changing from BENCHMARK to BENCHMARK_TEMPLATE causes the bug to occur, which...