IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

performance de script sur tableaux


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut performance de script sur tableaux
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    	$j = 0;
    	$delta = 3600;
    	$size_pui = count($tableau);
     
    	$tab_max = array();
     
    	for($j=0;$j<$size_pui;$j++)
    	{
    		if(($j+$delta) < $size_pui)
    		{
    			$tab_max[$j] = array_sum(array_slice($pui,$j,$delta))/$delta;
    		}
    	}
     
    	$max = max($tab_max);
    j'ai essayé de faire un script semblable en perl, pensant que les performances seraient améliorée, mais c'est encore pire...

    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 .

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ton tableau il sort d'ou ? d'une base ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    oui le tableau sort d'une base mysql.
    Penses-tu que de telles opérations réccursives seraient plus performantes en mysql ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par pierki Voir le message
    oui le tableau sort d'une base mysql.
    Penses-tu que de telles opérations réccursives seraient plus performantes en mysql ?
    vu que c'est pas récursif oui

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    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.

    moyenne du 1er au 3600eme élément
    moyenne du 2eme au 3601eme élément
    moyenne du 3eme au 3602eme élément

    ....

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par pierki Voir le message
    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.

    moyenne du 1er au 3600eme élément
    moyenne du 2eme au 3601eme élément
    moyenne du 3eme au 3602eme élément

    ....
    c'est pas du récursif c'est de l'itératif, renseigne toi

Discussions similaires

  1. [VBS]execution d'un script sur un pc différent
    Par Guismai dans le forum VBScript
    Réponses: 7
    Dernier message: 07/02/2006, 16h40
  2. [MySQL] Problème après le transfert de mon script sur internet
    Par LordBob dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 26/01/2006, 21h02
  3. Pb de script sur case à coher
    Par storm61 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/01/2006, 04h08
  4. Return code d'un script sur serveur distant
    Par Koobor dans le forum Linux
    Réponses: 2
    Dernier message: 10/11/2005, 09h09
  5. pb avec un script sur mozilla
    Par grospaulo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/12/2004, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo