Le mardi 09 mars 2010 à 14:54 +0100, Eric Chatellier a écrit :
Le 09/03/2010 14:37, Florian Desbois a écrit :
Bonjour à tous,
Salut,
Il y a un sacré problème d'optimisation au niveau du dépouillement.
Le dépouillement est effectué à chaque chargement de la page des votes (et donc également à chaque vote, chaque clic sur la page, ...).
En effet. Mais il n'y a pas tellement d'options. Le faire à l'affichage de résultats c'est le même perf. Ça ne fait que déplacer le probleme.
Et bien si, il suffirait de persister les résultats à chaque vote si l'option "resultats continus" est sélectionné. Du coup pas de dépouillement systématique à chaque action sur la page, uniquement lorsque c'est nécessaire !
Autre question à part : pourquoi les résultats sont stockés ? (on a normalement toutes les infos pour les recalculer)
On va peut-être pas relancer l'algo de dépouillement systématiquement ! Lorsqu'il y aura 3000 votes cela risque d'être un peu plus long (surtout avec le paquet de logs).
J'ai essayé de modifier ce comportement pour qu'il récupère les résultats existants en base lorsqu'il n'y aucun nouveau vote (ou modification) effectuée. Le souci : la base de données ne prend pas en charge l'option "résultats continus", du coup les seuls résultats persistés sont les finaux... Merci Nolwenn, tu aurais pu modifier le modèle pour prendre au mieux en charge cette nouvelle option..
On n'a pas compris le problème. Sur l'entité Poll, il y a un attribut "continuousResults", tu parles d'un autre attribut manquant ?
Non c'est bien celui là qu'il faut considérer lors de l'ajout d'un vote : on dépouille et on sauve l'ensemble des résultats (pas uniquement le gagnant). Sinon si les résultats ne sont pas continus, il n'est pas nécessaire de dépouiller systématiquement à chaque vote !