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 <v53vh6$368vf$1@dont-email.me>
Deutsch   English   Français   Italiano  
<v53vh6$368vf$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!feed.opticnetworks.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.lang.c
Subject: Re: Baby X is bor nagain
Date: Fri, 21 Jun 2024 15:34:30 +0200
Organization: A noiseless patient Spider
Lines: 82
Message-ID: <v53vh6$368vf$1@dont-email.me>
References: <v494f9$von8$1@dont-email.me>
 <v49seg$14cva$1@raubtier-asyl.eternal-september.org>
 <v49t6f$14i1o$1@dont-email.me>
 <v4bcbj$1gqlo$1@raubtier-asyl.eternal-september.org>
 <v4bh56$1hibd$1@dont-email.me> <v4c0mg$1kjmk$1@dont-email.me>
 <v4c8s4$1lki1$4@dont-email.me> <20240613002933.000075c5@yahoo.com>
 <v4emki$28d1b$1@dont-email.me> <20240613174354.00005498@yahoo.com>
 <v4okn9$flpo$2@dont-email.me> <v4p37r$k32n$1@dont-email.me>
 <v4pei3$m5th$2@dont-email.me> <v4plsk$nn9o$2@dont-email.me>
 <v4pnq6$o4fs$1@dont-email.me> <v4q245$si2n$1@dont-email.me>
 <v4q2rl$sqk3$1@dont-email.me> <v52308$2nli8$3@dont-email.me>
 <v53i4s$33k73$2@dont-email.me> <v53lf7$34huc$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 21 Jun 2024 15:34:31 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="017bd53d5809bfe07afbcdbc63488ddf";
	logging-data="3351535"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+TL58h8L3UY4oSVClmjXosm0jsmzr5z/0="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.11.0
Cancel-Lock: sha1:BYuJirwN58/y7+gih7CHSR6JNZ0=
Content-Language: en-GB
In-Reply-To: <v53lf7$34huc$1@dont-email.me>
Bytes: 4769

On 21/06/2024 12:42, bart wrote:
> On 21/06/2024 10:46, David Brown wrote:
>> On 20/06/2024 22:21, Vir Campestris wrote:
>>> On 17/06/2024 20:29, David Brown wrote:
>>>> I do my C development with optimisations enabled, which means that 
>>>> the C compiler will obey all the rules and requirements of C. 
>>>> Optimisations don't change the meaning of correct code - they only 
>>>> have an effect on the results of your code if you have written 
>>>> incorrect code.  I don't know about you, but my aim in development 
>>>> is to write /correct/ code. If disabling optimisations helped in 
>>>> some way, it would be due to bugs and luck.
>>>
>>> To me disabling optimisations does one slightly useful thing 
>>> (compiles a little quicker) and one really useful one. It makes the 
>>> interactive debugger work. Optimised code confuses the debugger, 
>>> especially when it does things like reorder code, unroll loops, or 
>>> merge equivalent functions.
>>>
>>> Of course I then test with the optimised version.
>>>
>>> Andy
>>
>>
>> I understand your viewpoint and motivation.  But my own experience is 
>> mostly different.
>>
>> First, to get it out of the way, there's the speed of compilation. 
>> While heavy optimisation (-O3) can take noticeably longer, I never see 
>> -O0 as being in any noticeable way faster for compilation than -O1 or 
>> even -O2.
> 
> Absolute time or relative?

Both.

> For me, optimised options with gcc always 
> take longer:

Of course.  But I said it was not noticeable - it does not make enough 
difference in speed for it to be worth choosing.

> 
>   C:\c>tm gcc bignum.c -shared -s -obignum.dll        # from cold
>   TM: 3.85

Cold build times are irrelevant to development - when you are working on 
a project, all the source files and all your compiler files are in the 
PC's cache.


> 
>   C:\c>tm gcc bignum.c -shared -s -obignum.dll
>   TM: 0.31
> 
>   C:\c>tm gcc bignum.c -shared -s -obignum.dll -O2
>   TM: 0.83
> 
>   C:\c>tm gcc bignum.c -shared -s -obignum.dll -O3
>   TM: 0.93
> 
>   C:\c>dir bignum.dll
>   21/06/2024  11:14            35,840 bignum.dll

Any build time under a second is as good as instant.

I tested on a real project, not a single file.  It has 158 C files and 
about 220 header files.  And I ran it on my old PC, without any "tricks" 
that you dislike so much, doing full clean re-builds.  The files are 
actually all compiled twice, building two variants of the binary.

With -O2, it took 34.3 seconds to build.  With -O1, it took 33.4 
seconds.  With -O0, it took 30.8 seconds.

So that is a 15% difference for full builds.  In practice, of course, 
full rebuilds are rarely needed, and most builds after changes to the 
source are within a second or so.

So yes, unoptimised builds are consistently faster.  But for something 
other than a "hello world" program or single monster source code, the 
difference is not relevant in normal development work.