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 :

[Optimisation] Quel type de variable manipuler ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut [Optimisation] Quel type de variable manipuler ?
    Bonjour

    Pour optimiser le temps de traitement et la charge du serveur, que vaut-il mieux faire entre les 2 possibilités suivantes :
    - mettre des données (avec plusieurs boucles) dans une variable locale et une fois que la variable est finie, la mettre dans une variable de session pour la passer à une autre page
    - ou initialiser directement une variable de session et la manipuler avec des boucles

    Exemple :
    Faut-il mieux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $contents = "<table>";
    for($k = 0; $k < sizeof($sql_graph); $k++)
    {
    	for($i = 0; $i < sizeof($data[$k]); $k++)
    	{
    		$contents = "<td>{$data3[$k][$i]}</td><td>{$data[$k][$i]}</td></tr>";
    	}
    }
    $contents = "</table>";
    $_SESSION['contents'] = $contents;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $_SESSION['contents'] = "<table>";
    for($k = 0; $k < sizeof($sql_graph); $k++)
    {
    	for($i = 0; $i < sizeof($data[$k]); $k++)
    	{
    		$_SESSION['contents'] = "<td>{$data3[$k][$i]}</td><td>{$data[$k][$i]}</td></tr>";
    	}
    }
    $_SESSION['contents'] = "</table>";
    Dans le 2è cas, la variable de session n'est-elle pas stockée en permanence sur le disque du serveur (et non en RAM) ? N'y a-t-il pas un problème de temps d'accès en lecture/écriture, si les boucles sont assez longues ?

    Merci de vos opinions.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 28
    Par défaut
    Cela revient au même.

    Durant l'exécution de ton script, la variable $_SESSION est chargée en mémoire et ce n'est qu'a la fin de ton script que Apache réalise les accès fichier.

    Personnellement, je préfère la 1ere solution car le code me parait plus léger

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Si Apache n'écrit le fichier qu'à la fin, c'est la seconde solution qui est la plus intéressante pour moi, car elle divise l'utilisation de la mémoire par 2. Même si le code est un peu plus lourd à lire.

    Merci beaucoup pour cette info.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel type de variable puis-je utiliser
    Par serial_92 dans le forum MySQL
    Réponses: 6
    Dernier message: 01/02/2010, 10h06
  2. [TPW] Jeux de rôle : quels types de variables pour coder des personnages ?
    Par maxiNoob dans le forum Turbo Pascal
    Réponses: 81
    Dernier message: 07/12/2009, 11h54
  3. Quel type de variable pour enregistrer un temps ?
    Par trigone dans le forum Langage
    Réponses: 9
    Dernier message: 07/12/2008, 20h15
  4. Réponses: 2
    Dernier message: 05/02/2008, 11h47
  5. Quel type de variable ?
    Par whbh dans le forum Langage
    Réponses: 3
    Dernier message: 26/01/2006, 11h31

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