Deutsch English Français Italiano |
<86r062f0kl.fsf@linuxsc.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch <tr.17687@z991.linuxsc.com> Newsgroups: comp.lang.c++ Subject: Re: constexpr is really very smart! Date: Fri, 20 Dec 2024 14:31:54 -0800 Organization: A noiseless patient Spider Lines: 54 Message-ID: <86r062f0kl.fsf@linuxsc.com> References: <vjndub$2glcu$1@paganini.bofh.team> <20241216112808.00003f74@yahoo.com> <86jzbyghdw.fsf@linuxsc.com> <20241218013342.0000518a@yahoo.com> <867c7whol9.fsf@linuxsc.com> <20241218220006.00003f8e@yahoo.com> <86v7vgf3tb.fsf@linuxsc.com> <20241219234549.00001902@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Fri, 20 Dec 2024 23:31:55 +0100 (CET) Injection-Info: dont-email.me; posting-host="7b456885956cc1389d72eb0540418a63"; logging-data="3851431"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+A1/0Ni+9QGUBTqgV0ytRmhjU3D2+ijZg=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:TB+JpU4c2oqdsGfv8ry2oBKvays= sha1:18tqDcSycdhTRwF3C1OQEsv12B0= Bytes: 3273 Michael S <already5chosen@yahoo.com> writes: > On Thu, 19 Dec 2024 00:57:20 -0800 > Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: > >> Michael S <already5chosen@yahoo.com> writes: >> >>> On Wed, 18 Dec 2024 09:45:38 -0800 >>> Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: >>> >>>> Michael S <already5chosen@yahoo.com> writes: [...] >>>>> According to my measurement gear, in range 0 to 92 there are few >>>>> points where [the code I posted] is faster than simple loop, but >>>>> in majority of cases it is slower. >>>> >>>> I'm at a loss to understand how this could happen. In my own >>>> measurements, the code shown above runs faster than a simple loop >>>> in all cases above n > 12, more than twice as fast when n > 17, >>>> more than three times as fast when n > 42, and going up from >>>> there. What might account for these radically different results? >>> >>> May be, number of repetitions? >>> I run the test only once. That gives relative advantage to smaller >>> code which is less sensitive to cold ICache and to cold branch >>> predictors. >> >> That's an interesting idea. Can you also run a measurement where >> the code is run inside loops? I think it would be instructive >> to compare the results under the two approaches. [...] > > I feel that running fib(n) with the same n in loop too unrealistic. > So I decided to run, at least, with different values of n. I agree, that is a better choice for a measurement test load. > Ended up spending about a hour just to build a test bench. > > The answer is - in a loop of more than dozen iterations your code is > indeed faster. Esp. so for hundred or more iterations. I'm happy to learn that my instincts were validated here. And I also learned something, about the effects of code warmup. Very interesting. > Here is my test bench. [...] Thank you for that. Sadly I am not able to run it because my test environment is lacking _rdtsc(), and I haven't been able to find out how to install it. By the way, I send you an email earlier today. Did that get to you?