Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <86r062f0kl.fsf@linuxsc.com>
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?