The main flag sets for speed are -C, -Cj, -S, -Sj, -j, and sometimes
adding -Oc as well. On ppc, -C and -Cj are often the fastest. On x86,
-j is most often the fastest. But here's the cavaet, to use JIT, you
of course need someone to port it to that arch. With -C, your compiler
has to support some of the source code features of the CGP core, which
gcc does. In general, as far as I know anyway, -C will be your generic
fast runcore. If your application's actually time-able, as in it won't
continuously run, you can just test various runcores with your
platform. But the way your program is coded has an impact. You can
write a program/subroutine to be very optimized for easy jitting, or
write it in a simpler and quicker to develop manner. And some of the
opcodes used just aren't jitted for one reason or another, which kind
of stops the jitability of that sub. There is no one fastest runcore
for all situations(although -t7 is probably the slowest). It depends
on the PIR and the architecture.
On Feb 28, 2006, at 12:59 PM, Nicolas Cannasse wrote:
[...]
The '-Cj' runtime options tries to compile simple subs to native
assembler code (and obviously succeeds here ;)
Yes I understand that there is different cores for Parrot, but what are
the flags appropriate for doing some comparisons ? Some flags might do
very good in some cases and quite bad in some others. They might also
take tremendous time to JIT the code, hence not being usable on larger
applications.
Is there one single config that the Parrot team is focusing on bringing
to 1.0 ?
Nicolas