LDPE (thicker, 'bag for life' etc) is about 4 times as bad, paper bags 3 times, vs HDPE (thin) bags assuming no reuse. The below UK gov study investigates impact of each (and other alternatives like cloth bags) and also considers reuse as bin liners, which significantly changes the numbers.
With Java vs C++, the experience seems similar. In C++, memory allocation is slow, so you worry about memory allocation up front. In Java, GC is a pain so you worry about memory allocation up front. As Daniel points out, there are a few extra tricks available to native developers (eg vector instructions), so there's a small factor speed-up in best-practice C++ vs best-practice Java, but this is closing (eg the JIT increasingly uses vector instructions). Overwhelmingly the difference between a slow system and a fast system is appropriate choices of algorithms and architecture, not the language.
The compression format is really smart, there's a neat trick to make the logarithm calculation fast, and there's a concurrent thread handoff mechanism so you can swap out a histogram without disturbing the thread you're measuring (though last two probably only in the java version). Those three make it super useful for very low impact performance measurements.
Is a <1s live ticking number implausibly high frequency? Of course, it's just spooling out numbers on a timer.