optimisation : strcmp() ou intval()+comparaison ? - PHP - Programmation
Marsh Posté le 27-07-2009 à 20:08:03
dans le sens ou ca passe dans les 32 bits de l'integer, meme si c'est pas loin puisque la valeur max c'est 2147483647, si ca avait eté au dessus je pense quand str ca aurai eté mieux, a voir apres...
Marsh Posté le 29-07-2009 à 21:08:06
Tu es absolument sûr que cette optimisation est importante ?
Si ce n'est pas le cas, choisit le plus lisible/pratique.
Premature optimization is at the root of all evil, disait le sage
Marsh Posté le 30-07-2009 à 10:20:28
Oui, bien sûr, je n'y gagnerai pas beaucoup.
Mais j'aime bien connaitre la meilleure solution quand deux solutions me paraissent équivalentes
Marsh Posté le 30-07-2009 à 13:10:27
Pascal le nain a écrit : Oui, bien sûr, je n'y gagnerai pas beaucoup. |
Ok, seulement la performance n'est pas le seul critère de choix, c'est même souvent le plus mauvais.
En l'occurence, tu as deux nombres, donc les comparer avec <> me parait le plus logique. Même pas besoin de les transformer en int, ça va se faire implicitement.
Marsh Posté le 30-07-2009 à 14:39:36
theredled a écrit : |
Ah ? Quel est le critère le plus important alors ? Je suis curieux de ta réponse.
La simplicité ? Oui, c'est utile quand on remanie le code, mais une fois le code fixé, il est toujours utile d'optimiser un max.
Taz a écrit : T'optimises rien du tout là en fait. |
Aucune idée, c'est bien pour ça que je pose la question
Marsh Posté le 30-07-2009 à 14:40:16
Le bourreau de la cat C ya 5 ans
Marsh Posté le 30-07-2009 à 14:42:58
Pascal le nain a écrit : Ah ? Quel est le critère le plus important alors ? Je suis curieux de ta réponse. |
- Lisibilité
- Maintenabilité
- Eventuellement, évolutivité dans le temps
Un code n'est jamais "fixé", ça existe pas ça.
Si tu veux vraiment tout optimiser, utilise un cache d'op-code, ou fait ton site en assembleur...
Après ouais, tu peux optimiser des parties de ton code, les trucs que tu mesures clairement comme trop lents, typiquement les requêtes SQL, mais c'est tout, le reste, la micro-optimisation, ça sert juste à te faire perdre le temps que tu pourrais passer au cinéma avec ta copine.
Marsh Posté le 31-07-2009 à 16:56:10
oh detrompe toi, le micro optimisation peu faire gagner de temps, j'ai pas d'exemple en PHP,
mais en Actionscript, pour convertir un bitmap en jpeg,
mettre les données dans un Vector plutot qu'un Array
et faire de la préincrmentation plutot que de la post dans les boucle
faisais gagné 1.5x sur le temps du script, ce qui est pas négligeable,
bon apres c'est juste un exemple qui fonctionne
mais de te rejoins sur le systeme de cache,
faire un systeme de cache, qui creer un fichier HTML fixe toute les 30 min, ca fait beaucoup gagner de temps
Marsh Posté le 08-08-2009 à 15:11:22
Oui ya des cas où la micro-optimisation est utile, mais dans 99.999% des cas, non, et elle est même préjudiciable.
Et surtout, elle vient à la fin, quand on sait précisément pourquoi on la fait, pas a priori, "au cas où".
Là tu prends un exemple où une même boucle est réellement exécutée des millions de fois, pour des durées très courtes à chaque fois, donc oui ça peut être déterminant. Mais c'est marginal ce genre de trucs en AS, comme dans n'importe quel langage. C'est le domaine des parseurs ou des calculateurs de sommes énormes de données, et en plus la plupart ont déja été codés par d'autres depuis longtemps et réutilisables. D'ailleurs un convertisseur BMP/JPG en AS, je veux bien être sûr que ça n'existe pas déja.
Qui plus est, gagner d'un facteur 1.5, c'est bien, mais si c'est sur 50ms et utilisé ponctuellement, c'est négligeable. Après je connais pas le contexte de ton convertisseur.
Marsh Posté le 27-07-2009 à 17:16:48
Bonjour,
Je souhaite comparer deux dates. Elles sont stockées sous forme de timestamp dans un fichier texte.
Par exemple 1248704795 et 1248706343.
Est-il plus rapide de comparer les chaines avec strcmp, où bien de les convertir en int puis de les comparer avec > ou < ?
Merci d'avance