optimisation GCC xcode 1.5

titim

Membre junior
30 Septembre 2004
41
0
Bonjour,
Je fais un code de monte carlo (très très objet) avec xcode, le pb c'est que ca rame mais à un point (G4 1 ghz) du type 20 Fois plus long qu'avec visualc++ sur un p4 à 2 GHZ.
mon code se compile est s'exécute sur avec gcc, visualc++ et un compilo sun.
MA question est la suivante peut améliorer la compilation avec xcode à part de demander
une compilation deployment ? Sinon je pourai passer par un makefile mais le man gcc est très très long à lire.
merci
 

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 072
376
92
Bonsoir,
dans un premier temps, tu peux déjà éditer la "Target" de ton projet et aller dans l'onglet "Build" pour modifier les paramètres par défaut et voir ce que cela donne. Tu peux jouer sur "OPTIMIZATION_CFLAGS" par exemple.
 

titim

Membre junior
30 Septembre 2004
41
0
Deux super menbres pour me répondre, merci !
Je vais essayer vos soluces ce week end et je vous donnerai mes impressions lundi.
bon we
za plus
:D
 

titim

Membre junior
30 Septembre 2004
41
0
En effet dans les option du target j'ai retrouvé les fameuses option -02 et -03, cela à bigrement changé le temps de calcul, merci à tous
 

SuperCed

Membre d’élite
Club MacG
20 Juin 2001
1 229
55
42
superced.rb38.eu
Si tu fais du C++, ces flags mettent le code en "inline". Ce qui accélère le traitement à l'éxécution.

Par contre, il faut se méfier parfois des codes inlines car quelquefois, le code généré est finalement trop gros pour tenir dans le cache du processeur. Ce qui fait donc des accès mémoire plus fréquent alors que tout pourrait tenir en cache.
Ca dépend donc du code utilisé. Un code monte carlo n'est pas forcément gros en soi, tu peux donc y gagner. Ce sont les données manipulées qui prennent un peu plus de place en mémoire, mais ça, tu ne peux rien y faire.

Si tu as un G5, tu as la possibilité d'optimiser grandement les traitements en jouant sur les prédictions de branchement. Il faut regarder les boucle qui sont souvent vraie ou souvent fausse. Dans le cas d'une condition souvent vraie, on a intérêt à remplir le pipeline d'avance.