|
Bas de page | |
---|---|
Auteur | Sujet : std::vector et performance |
Publicité | Posté le 04-08-2010 à 16:18:24 |
gelatine_velue |
|
Un Programmeur |
--------------- The truth is rarely pure and never simple (Oscar Wilde) |
ilelle | Voila je viens de tester le code avec std::list mais le temps est encore plus long !! |
Joel F Real men use unique_ptr | vector::reserve par burst popur préallouer la mémoire de std::vector |
el muchacho Comfortably Numb |
Message édité par el muchacho le 04-08-2010 à 20:22:59 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle |
el muchacho Comfortably Numb | Tu peux pas le réduire au minimum ? En tout cas ça m'étonnerait que ce soit la STL qui soit limitante. Message édité par el muchacho le 04-08-2010 à 20:57:51 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
Publicité | Posté le 04-08-2010 à 20:48:13 |
gelatine_velue |
|
Xavier_OM Monarchiste régicide (fr quoi) |
--------------- Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire. |
gelatine_velue | Je crois que ça n'a pas de sens de mettre les j++ dans le else.
|
ilelle | @ gelatine_velue j'utilise j++ dans un else pour éviter de sauter un élément (exemple : si j'efface l'élément qui se trouve dans la position j = 3 l'élément qui se trouve dans j = 4 prend sa place du coup si je ne met pas j++ dans un else je ne test jamais l'élément qui se trouvait dans la position j = 4)
|
gelatine_velue | Ok merci de ces précisions je crois qu'on a ce qu'il faut pour se pencher sur ton cas
|
ilelle | Merci infiniment |
Un Programmeur | Elles font quelle taille tes listFace?
--------------- The truth is rarely pure and never simple (Oscar Wilde) |
Joel F Real men use unique_ptr | On apprend plus ce qu'est un cache dans les écoles:
|
ilelle | @ Un Programmeur : les listFace sont dynamique je ne connais pas leur taille au préalable |
Xavier_OM Monarchiste régicide (fr quoi) |
ilelle tu ne dois pas oublier qu'en interne ton tableau est à une dimension, ton En faisant cells[k][i] à chaque k++ tu avances violemment dans ce tableau à une dimension Le 2ème cas est beaucoup plus intéressant pour toi car les données sont déjà en cache prêtes à l'emploi. Je sais pas si je suis clair. Message édité par Xavier_OM le 05-08-2010 à 17:58:23 --------------- Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire. |
Un Programmeur |
--------------- The truth is rarely pure and never simple (Oscar Wilde) |
ilelle | @ Xavier_OM et Joel F : je vient de faire le test avec cells[i][k] au lieu de cells[k][i] mais le résultat est le même |
ilelle | @ Un Programmeur : ah d'accord pour le nombre max c'est 21000 |
el muchacho Comfortably Numb |
Donc dans ta double boucle, tu mets un Xavier_OM: merci pour cette page Message cité 1 fois Message édité par el muchacho le 06-08-2010 à 07:40:54 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
gelatine_velue |
|
Riot Buy me a riot | Très intéressant ton lien, Xavier_OM --------------- Be the one with the flames. |
Joel F Real men use unique_ptr | il serait parfait si il comptait en cycle/element et non en temps/element :ð |
Xavier_OM Monarchiste régicide (fr quoi) | de rien les gens --------------- Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire. |
el muchacho Comfortably Numb |
--------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle | @ el muchacho je n'ai pas disparu mais justement j'était entrain d'essayer les différentes solution que vous m'avez proposé, et d'ailleurs j'ai ouvert ce forum pour remercier toute personne qui a contribué à résoudre mon problème (je suis pas ingrate comme même) grâce à vous (tout particulièrement les solutions de : Joel F, el muchacho, Xavier_OM) j'ai pu diminuer le temps d'exécution même s'il reste comme un peut long
|
el muchacho Comfortably Numb | J'ai deux ruses qui peuvent aider si tu gardes un vector pour listPenalite et listContribution: 1. parcourir le vector dans le sens end() -> begin(): si tu supprimes bcp d'éléments, ça fait déjà ça en moins à déplacer en mémoire à chaque fois. Encore une fois, c'est à comparer avec des structures d'arbre. 2. si l'ordre des éléments dans listPenalite n'a pas d'importance, tu appliques 1 et tu remplaces chaque élément à supprimer par le dernier élément du tableau et tu supprimes ce dernier. (au passage, ça devrait marcher aussi en Java et en C#) Message édité par el muchacho le 07-08-2010 à 08:59:23 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle | Merci el muchacho je vais essayer cette solution et je vous rends la réponse |
el muchacho Comfortably Numb | Je pense que les intervenants seraient intéressés par le gain cumulé par chacune des améliorations proposées, pas juste une réponse binaire du style "c'est mieux" ou "c'est pas mieux". Mesurer est la base de l'optimisation. Message édité par el muchacho le 07-08-2010 à 11:38:33 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle | Alors voila :
|
el muchacho Comfortably Numb | Par pitié, et par respect pour tes interlocuteurs, ne donne pas "juste l'essentiel" comme tu dis, mais élabore un minimum tes réponses. 62, ça veut dire quoi ? C'est la valeur de numFace ? Message édité par el muchacho le 07-08-2010 à 22:25:13 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle | Je suis vraiment désolée de vous avoir dérangé et surtout mal exprimé( en fin j'ai l'habitude de ne pas trop parler )
|
el muchacho Comfortably Numb | Allez, hop, c'est gratuit:
Message édité par el muchacho le 12-08-2010 à 14:28:39 --------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
ilelle | @ el muchacho c'est supère pour un nombre d'appel de la fonction ajour égale à 62 j'aurai un temps d'exécution = 3188 ms au lieu de 7969 ms |
Publicité | Posté le |
Sujets relatifs | |
---|---|
Utiliser un iterator sur un vector à 2 dimensions - position | remplissage d'un vector - perfs |
Vector et pointeur | vector iterators incompatible |
push_back(new maClasse) dans un vector de vector | Performance des boucles for avec la STL |
[Crypto] TripleDES - Initialization vector | Performance d'un applet Java? |
vector et thread safe | vector libération mémoire |
Plus de sujets relatifs à : std::vector et performance |