Comment mieux optimiser mon bout de code

clampinclampin Membre
00:37 modifié dans API AppKit #1
Bonjour,

Je continue mon long voyage dans le C et Objective-c....

j'ai un code source qui calcul combien d'argent je peux dépenser sur un nombre de jour donné

<br /><br />- (IBAction)Addbtn:(id)sender<br />{<br />	<br />	float EtatInitial, NombreJour, depenseJour;<br />	<br />	EtatInitial = [montantField floatValue];<br />	NombreJour = [NBjourField floatValue];<br />	<br />	depenseJour = EtatInitial / NombreJour;<br />	<br />	NSString *aString =[NSString stringWithFormat: @&quot;resultat = %0.2f euros&quot;, depenseJour];<br />	<br />	if (depenseJour &lt;0) {<br />		[MonResultat setStringValue:@&quot;vous etes en negatif&quot;];<br />	}<br />	else {<br />		[MonResultat setStringValue:aString];<br />	}<br />}<br /><br />


Je sais qu'il n'y a aucune gestion de la mémoire.... mais est-ce qu'il est possible d'améliorer ce code ?  (des pistes hein, pas vraiment de solution toute faite)...

Ce code affiche le résultat dans un champ texte.. la prochaine étape se sera d'utiliser un NSTableView pour voir les résultat différents....

Merci d'avance

Réponses

  • AliGatorAliGator Membre, Modérateur
    00:37 modifié #2
    dans 1174930693:
    Je sais qu'il n'y a aucune gestion de la mémoire.... mais est-ce qu'il est possible d'améliorer ce code ?
    Non.

    ;)

    Ton code est proprement écrit, je pense pas qu'il y ait moyen de faire beaucoup mieux pour le calcul que tu veux faire.

    Si vraiment tu tiens à  optimiser, ce serait purement du côté algorithmique et compilo, à  savoir éviter de faire la division et de calculer la NSString si tu ne les utilises pas (donc déclarer la NSString, et l'utiliser, que dans le "if")... et encore tu ne gagnerais pas vraiment des masses.
    L'autre optimisation éventuelle que tu peux faire, mais qui n'est pas obligatoire non plus, c'est de gérer la mémoire plus localement : ici pour ta NSString tu utilises un objet auto-releasé (constructeur de commodité stringWithFormat, qui revient au triplet {alloc, initWithFormat, autorelease}), alors que tu pourrais la releaser toi-même.

    Mais ce n'est vraiment pas choquant, et c'est vraiment parce que tu demandes comment optimiser ton code, parce que sinon l'écriture que tu as donné est tout à  fait courante.

    Sinon, par contre, un truc que tu as oublié, c'est de vérifier que tu ne faisais pas une division par zéro !

    Voilà , je te mettrais bien le bout de code pour synthétiser tout ça mais comme tu as demandé qu'on ne donne pas de solution toute faite... :D
  • 00:37 modifié #3
    Petite piste aussi: les conventions de nomenclature pour les variables et les méthodes
  • clampinclampin Membre
    00:37 modifié #4
    dans 1174933651:

    Petite piste aussi: les conventions de nomenclature pour les variables et les méthodes


    Juste... je vais corriger pour respecter la norme....
Connectez-vous ou Inscrivez-vous pour répondre.