|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Salut à tous,
Voila j'ai un petit pb de temps d'exécution sur un script qui fait quelques calculs sur les éléments d'un tableau de plusieurs milliers de lignes. J'arrive à 20s voir plus online. Voici ce qu'est censé faire le script : pour chacune des valeurs du tableau, je prends les 3600 suivantes et j'en fais la moyenne. le but étant de répérer la moyenne max sur 3600 valeurs consécutives. Je pense avoir optimisé mon code, mais cela n'est pas suffisant, car étant sur un mutu, le script peut s'exécuter parfois plus que les 30s autorisées. Voici mon code : Code :
J'ai essayé un foreach à la place du for, idem. Y a-t-il un moyen plus efficace de faire ce que je veux ? Est ce qu'un script en python pourrait etre plus rapide pour les opérations sur les tableaux ? Merci . |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
ton tableau il sort d'ou ? d'une base ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
oui le tableau sort d'une base mysql.
Penses-tu que de telles opérations réccursives seraient plus performantes en mysql ? |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Mais si c'est récursif, et du coup ça me reviens à faire pas loin de 9000 requêtes sur la base pour détecter la meilleure moyenne sur 3600 valeurs, en décalant de 1 éléments à chaque tour de boucle.
Citation:
|
|
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
oki =)
Désolé pour le terme mal choisi ... Alors existe-t-il une requete permettant de faire mon calcul en une seule fois ? Sinon comment corriger ce que j'ai fait? |
|
|
00
|
|
|
#8 | |||||
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
imagine que tu fait la moyenne sur Citation:
(on part de zéro) 1 groupe : Citation:
Citation:
si tu va en décalage de 1 seul nombre le groupe 2 est égale a la somme du 1er groupe et du dernier membre de son groupe diviser par le le delta moins le 1er membre du premier groupe diviser par le delta donc Citation:
__________________
http://blog.stealth35.com/ |
|||||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
hum hum ...
effectivement je l'avais pas vu sous cet angle... MErci ! Maintenant, reste à transcrire ça en php ... |
|
|
00
|
|
|
#10 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
Citation:
pour le moment en PHP, le plus important étant de calculer la 1er moyenne, ensuite la boucle va partir du bout 3600 jusqu'a x ($i incremente) etant notre 4 etant notre 6 le tour est joué
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
Exact !! c'est ce que je suis en train de tester...
- calcul de la premiere moyenne si $i==0 - calcul des deux valeurs "moyennées" à soustraire et à ajouter - stockage si max Encore merci pour la rapidité et la pertinence... je posterai le code dès qu'il sera fonctionnel, si ça peut servir ... |
|
|
00
|
|
|
#12 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
tien :
Code :
__________________
http://blog.stealth35.com/ |
||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 7 ![]() |
merci =)
|
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com