On 12 Dec 2006, at 17:42, Ronald Vogelaar wrote:

Coming from Unix/Linux world, there's one thing that I noticed about your compiler settings. You use GCC_OPTIMIZATION_LEVEL = s. It is commonly accepted nowadays that -Os does not generally create the fastest binaries. You should use -O3 or at least -O2.

Thanks Ronald, I'll be giving that a go. Coming from the MrCpp world ;) I've been used to finding that the smaller executables are generally faster, but I guess this no longer applies when not using the MrCpp compiler. MrCpp is some really ancient compiler Apple made made 7 years ago that generates the best PPC code I've ever seen. I think it still did have optimisations for G3, although not G4 or G5.

Having said that, I can't imagine that being the cause of a massive slowdown. But why do you not use -fUnroll_loops?

Erm... I dunno. Basically because I don't want all the loops unrolled, only the most important ones. Silly eh? I'll play it on the safer (but fatter) side this time, and unroll the loops.

I also think you can safely assume SSE3 to be present in all Intel Macs (Though I am unsure whether that would actually bring you anything.

Yeah, I had no idea what SSE3 was or if it is on Intel Macs, but now that I know it's there, I'll add it. It can't hurt.

Ronald Vogelaar
http://www.rovosoft.com


Theodore H. Smith wrote:
Hi people,

I'm compiling my ElfData plugin with Xcode for UB.

It seems there is a big slow down on intel. I can't figure out why. Many of my functions are running around 2x slower than the PPC version!!

So basically, if I have these stats:

PPC plugin compiled with Xcode
Intel plugin compiled with Xcode

PPC app compiled with RB2006
Intel app compiled with RB2006

Then, the Intel version of my plugin is 2x slower relative to REALbasic. I'm assuming REALbasic is the same, but ElfData is running slower. I'm also getting similar results when comparing ElfData to perl, so I don't think it's just REALbasic that is optimised for intel, it's more like ElfData's compiler settings need fixing for Intel.

Is something up? Something isn't making sense here.

I'm thinking I gotta improve my speed test project, to use a scripted test, so that I can get a complete coverage run, so I can automatically compare entire datasets between runs. This way, I can get a one stop fix to just compare what the effects of various compiler settings on my plugin's overall performance.

Then I'll do a proper comparison. I'll test CW vs MrCpp vs Xcode :) and this time get a full thorough coverage. MrCpp won't do Intel, alas, but it does G5 just fine.

I bought myself a copy of RB2006, just for the sake of testing my plugin for Intel Macs, btw :)

My settings in Xcode are thus:

GCC_GENERATE_DEBUGGING_SYMBOLS = NO
GCC_DEBUGGING_SYMBOLS = default
GCC_ENABLE_SYMBOL_SEPARATION = YES
GCC_OPTIMIZATION_LEVEL = s
GCC_NO_COMMON_BLOCKS = NO
GCC_REUSE_STRINGS = YES
GCC_DYNAMIC_NO_PIC = NO
GCC_FAST_OBJC_DISPATCH = NO
GCC_ENABLE_OBJC_GC = NO
GCC_UNROLL_LOOPS = NO
GCC_FAST_MATH = YES
GCC_STRICT_ALIASING = NO
GCC_MODEL_TUNING = G5
GCC_MODEL_PPC64 = NO
GCC_AUTO_VECTORIZATION = NO
GCC_ENABLE_SSE3_EXTENSIONS = NO
GCC_FEEDBACK_DIRECTED_OPTIMIZATION = Off
GCC_SYMBOLS_PRIVATE_EXTERN = NO
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
GCC_ENABLE_FIX_AND_CONTINUE = NO
GCC_OBJC_CALL_CXX_CDTORS = NO
GCC_THREADSAFE_STATICS = NO
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
GCC_GENERATE_TEST_COVERAGE_FILES = NO

any problems here? Firstly, I'm not so sure about that GCC_MODEL_TUNING = G5 line... If I am targeting intel, why should the instructions be scheduled for G5? Won't that kill the flow? But I can't actually choose intel from Xcode's UI!!


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>



--
http://elfdata.com/plugin/



_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to