[fpc-devel] Are x86 optimizations across various platforms shared?

Graeme Geldenhuys graeme at geldenhuys.co.uk
Tue Feb 12 10:22:15 CET 2013


On 2013-02-12 08:48, Mark Morgan Lloyd wrote:
> 
> There's a vast number of factors that you're underreporting. For 
> example, the underlying VM system could detect which OS is running as a 
> guest, and behave differently. Or the OS could reconfigure the CPU and
> ... snip...

That should normally point to the fact why VM's run slower than the
host. Simulated hardware etc. But in my case, it is other way round.
Linux is in the VM, yet runs faster than FreeBSD.


> The only way that you're going to get anywhere is by tweaking the 
> programs to loop, so that you can factor startup time out.

I seriously doubt it is startup time that accounts for the difference -
especially in the case of non-persistent test, where a test might simply
search a string for tokens, create a list object, add a few objects,
then free the list object, making sure the children are freed too. Such
tests all happen simply in memory and don't have any OS or other library
API calls. Plus these exact tests run on both OS's, so if a test startup
would be a factor, it would apply to both OS's.

Looping the test suite is no problem, the testing framework already
supports that. But I doubt timing will be much different. I will run a
10 iteration anyway, just to see.

I'll try and investigate further, and see if I can create more benchmark
tests.

For now I have the following FPC questions...

1) Does the binary releases of FPC for Linux and FreeBSD use the same
compiler settings when a release is created?

2) Does FPC optimize code per CPU and OS, or just per CPU architecture?
I assume the latter, but would appreciate a confirmation from somebody
that knows FPC internals.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/




More information about the fpc-devel mailing list