[fpc-devel] Question on updating FPC packages

J. Gareth Moreton gareth at moreton-family.com
Tue Oct 29 15:14:52 CET 2019


Please note that only Marco's e-mails are making the list.  I don't see 
Michael's responses.

Gareth aka. Kit

On 29/10/2019 13:41, Marco van de Voort wrote:
>
> Op 2019-10-27 om 10:27 schreef Michael Van Canneyt:
>>
>>
>> Absolutely.
>>
>> Personally, I don't have any concern for performance in this sense. 
>> Almost zero.
>> I invariably favour code simplicity over performance, for sake of 
>> maintenance.
>
> But there is another kick-in-the-open-door statement about 
> performance: That the most performance is gained in a relative small 
> part of the code.
>
> To tackle that you need tools to force the compiler to behave a 
> certain way that might not (yet?) be doable on the compiler side. IMHO 
> it is unfair to deem this all microoptimization just because it 
> doesn't hurt you.
>
>>
>> For good reason: for the kind of code which I create daily, the kind of
>> micro-optimizations that you seem to refer to, are utterly 
>> insignificant,
>> and I expect the compiler to handle them. If it currently does not, 
>> then I
>> think the compiler, rather than the code, must be improved.
>
> Just the vectorizing will probably more than double the performance. 
> Just look at the asm that I posted and imagine reducing it to one 
> instruction.
>
> And while set FFT unit is not yet a performance bottle neck  for us 
> now, it has been marked as a relative large factor of the measurement 
> time. (iirc it is about 1ms for a 400 sample array on somewhat older 
> hardware)
>
> And what is exactly needed might change at any given moment. If a new 
> camera comes out, if processing can keep up you can process more 
> samples which in turn reduces errors and improves the measurement 
> nearly automatically
>
> Doing the same purely algorithmically usually means  weeks-months of 
> hard maths trying to improve signal quality, and after that validating 
> that for umpteen products and customers etc etc. Believe me, 
> "Microoptimization" then sounds very tempting.
>
> If Gareth can get this running enough to show that the FFT reduces 
> instructions, I can just stuff it in a DLL, and have it lying on a 
> shelf to insert into the Delphi app when needed. Which would be great.
>
>> Code should not entirely disregard optimization, but then it should 
>> be on a
>> higher level: don't use bubble sort when you can use a better sort. No
>> amount of micro-optimization will make bubble sort outperform quickort.
>
> (
>
> Interesting example, I'm not really a hardcore algorithms man, but I 
> can think of some potential problems with that statement:
>
> 1 that only goes for N->Infinity and that computers don't have 
> infinite resources. If quicksort uses more memory (e.g. to track 
> state) it might not apply in certain circumstances.
>
> 2   if your swap() function is extremely expensive, sorting an already 
> sorted array is more expensive with quicksort because it is a non 
> stable sort.
>
> 3 the non recursive bubble sort might be easier to unroll and then 
> optimize by the compiler in cases of sorting a fixed number of items. 
> (e.g. ordering the elements of a short vector)
>
> )
>
> Anyway, besides the fun, the "algorithms" mantra is only a first order 
> guideline, not an absolute truth.
>
>> Saying that the code is 'almost unusably slow' is the kind of 
>> statement that does
>> not help. I use the code almost daily in production, no complaints about
>> performance, so clearly it is usable.
>
> True. Claims should be proven, and with code that does something (not 
> with simply a loop around a single operation)
>
> But that is why I brought up the FFT unit. It is possible that that is 
> such a case.
>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list