 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Jonathan Mcdougall Guest
|
Posted: Tue Jul 29, 2003 8:46 am Post subject: Re: Problème très très étrange |
|
|
| Quote: | dans les 2 cas OpenGL
recoit exactement les memes choses, c'est pas la que ca rallenti...
j'alloue rien dans la fonction recursive et dans le gestionnaire des taches
le niveau d'occupation memoire pour les 2 versions est cazi pareil.... y a
pas eu de pique lors du trie...
|
"tout fonctionne bien, mais ça ne marche pas", c'est ça?
Essaie de poster un peu de code en strippant l'opengl, si tu penses
que ça peut valoir la peine.
Jonathan
|
|
| Back to top |
|
 |
Nicolas Guest
|
Posted: Tue Jul 29, 2003 9:08 pm Post subject: Problème très très étrange |
|
|
Salut à tous
Dans un de mes programme, j'ai remplacé l'utilisation de la fonction qsort
par un quicksort a "moi" :
c'est un petit soft 3D qui fait tourné un object en openGL... le Sort est
utilisé une seul fois au tout début, lors de diverses optimisations.
et donc depuis que j'ai mis mon trie.. le rendu est plus lent (environ 2fps
selon les objets 3D)
premier chose : je me suis dit que mon trie est foireux et que les datas
n'étaient plus optimisées .. j'ai comparé toutes les datas triées avec les
2 fonctions, elles sont identiques, bien triées... dans les 2 cas OpenGL
recoit exactement les memes choses, c'est pas la que ca rallenti...
en suite j'ai vérifier si mon trie crignotait pas de la mémoire ... non
j'alloue rien dans la fonction recursive et dans le gestionnaire des taches
le niveau d'occupation memoire pour les 2 versions est cazi pareil.... y a
pas eu de pique lors du trie...
Je comprend pas
si vous avez des idées n'hésitez pas
|
|
| Back to top |
|
 |
Arnaud Debaene Guest
|
Posted: Tue Jul 29, 2003 10:43 pm Post subject: Re: Problème très très étrange |
|
|
Nicolas wrote:
| Quote: | Salut à tous
Bonjour.
snip
si vous avez des idées n'hésitez pas
|
Commences par passer les deux veriosn de ton programme au profileur pour
identifier les goulots d'étranglement.
Arnaud
|
|
| Back to top |
|
 |
Luc Hermitte Guest
|
Posted: Tue Jul 29, 2003 10:46 pm Post subject: Re: Problème très très étrange |
|
|
Bonsoir,
"Nicolas" <titoo (AT) falkenzone (DOT) com> wrote in
news:bg6nom$i7c$1 (AT) news-reader5 (DOT) wanadoo.fr:
| Quote: | Dans un de mes programme, j'ai remplacé l'utilisation de la fonction
qsort par un quicksort a "moi" :
|
Cela va peut-etre te paraitre idiot mais ... pourquoi ?
Pourquoi remplacer, dans un projet qui tournait bien, une fonction bien
rodée, optimisée et bug-free par une faite à la main sur laquelle tu ne
vas avoir aucune garantie ?
| Quote: | c'est un petit soft 3D qui fait tourné un object en openGL... le Sort
est utilisé une seul fois au tout début, lors de diverses
optimisations.
et donc depuis que j'ai mis mon trie.. le rendu est plus lent
(environ 2fps selon les objets 3D)
|
Sinon, je suis d'accord que tout cela est assez étrange vu que le sort
n'est appelé qu'une seule et unique fois et en dehors des boucles --
d'après ce que tu nous dis.
Note au passage, le tri par fusion nous assure une complexité constante
en O(n ln n) alors que le quick sort tourne en O(n^2) dans le pire des
cas
--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>
|
|
| Back to top |
|
 |
read_in Guest
|
Posted: Tue Jul 29, 2003 11:33 pm Post subject: Re: Problème très très étrange |
|
|
Le Tue, 29 Jul 2003 23:08:38 +0200, Nicolas a écrit :
| Quote: | Dans un de mes programme, j'ai remplacé l'utilisation de la fonction qsort
par un quicksort a "moi" :
c'est un petit soft 3D qui fait tourné un object en openGL... le Sort est
utilisé une seul fois au tout début, lors de diverses optimisations.
|
t'es sur que dans ta boucle principale, il y a aucun appel à ta fonction ?
ou rien qui trie ? car normalement, d'apres ce que tu dis, il devrait ne
pas y avoir d'incidence...
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Wed Jul 30, 2003 12:46 am Post subject: Re: Problème très très étrange |
|
|
Nicolas wrote:
| Quote: | Salut à tous
Dans un de mes programme, j'ai remplacé l'utilisation de la fonction qsort
par un quicksort a "moi" :
|
Juste une remarque à part : Il existe un remplaçant très séduisant à
qsort : std::sort. Et je ne dis pas ça juste pour le plaisir d'être à la
mode C++ : Il est vraiment plus rapide, et plus simple à utiliser aussi.
Voir par exemple
http://www.cuj.com/documents/s=7992/cujcexp1908austern/austern.htm pour
une discussion plus complète.
--
Loïc
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Wed Jul 30, 2003 9:39 am Post subject: Re: Problème très très étrange |
|
|
"Nicolas" <titoo (AT) falkenzone (DOT) com> wrote
| Quote: | Dans un de mes programme, j'ai remplacé l'utilisation de la fonction
qsort par un quicksort a "moi" :
c'est un petit soft 3D qui fait tourné un object en openGL... le Sort
est utilisé une seul fois au tout début, lors de diverses
optimisations. et donc depuis que j'ai mis mon trie.. le rendu est
plus lent (environ 2fps selon les objets 3D)
premier chose : je me suis dit que mon trie est foireux et que les
datas n'étaient plus optimisées .. j'ai comparé toutes les datas
triées avec les 2 fonctions, elles sont identiques, bien triées...
dans les 2 cas OpenGL recoit exactement les memes choses, c'est pas la
que ca rallenti...
en suite j'ai vérifier si mon trie crignotait pas de la mémoire ...
non j'alloue rien dans la fonction recursive et dans le gestionnaire
des taches le niveau d'occupation memoire pour les 2 versions est cazi
pareil.... y a pas eu de pique lors du trie...
|
Tu n'aurais pas appelé ta fonction qsort, par hazard, de façon à ce que
quand openGL appelle qsort, il choppe la tienne, et non celle du système ?
--
James Kanze GABI Software mailto:kanze (AT) gabi-soft (DOT) fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
|
|
| Back to top |
|
 |
Nicolas Guest
|
Posted: Wed Jul 30, 2003 11:17 pm Post subject: Re: Problème très très étrange |
|
|
J'ai capté :p
En fait tout marche bien :
La seule différence c'est que les datas ne sont pas dans le meme ordre :
Je ne trie pas un tableau de valeurs mais des structures sur un de leur
champ contenant des doublons...
donc j'ai un classement un peu différents selon la méthodes, mais je m'en
fout je veux juste que cela soir trié sur le premier champ et basta...
qsort monsort
1 Toto 1 Titi
1 Titi 1 Toto
2 Popo 2 Papa
2 Papa 2 Pupu
2 Pupu 2 Popo
etc
La différences de vitesse de Rendu 3D, vient justement de cette
difference d'ordre...
les cartes 3D Nvidia gere un vertex cache de quelques elements (car un
vertex peut-être partagé par plusieurs faces consécutives , enfin je vais
pas faire un cour de 3D ici )
J'ai recodé un trie parcque j'avais besoin de trier avec 2 tableaux (le
critere de comparaison pour trié l'un est dans l'autre) donc pour le qsort
pas bon ;(
Merci pour vos conseils
|
|
| Back to top |
|
 |
Luc Hermitte Guest
|
Posted: Thu Jul 31, 2003 6:47 pm Post subject: Re: Problème très très étrange |
|
|
"Nicolas" <titoo (AT) falkenzone (DOT) com> wrote in
news:bg9jm9$38s$1 (AT) news-reader2 (DOT) wanadoo.fr:
| Quote: | J'ai recodé un trie parcque j'avais besoin de trier avec 2
tableaux (le
critere de comparaison pour trié l'un est dans l'autre) donc pour le
qsort pas bon ;(
|
Et en définissant la fonction de comparaison employée par std::sort ?
--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|