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


Reply via email to