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 :

Bizarre : Détail sur unset() et memory_get_usage() ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Par défaut Bizarre : Détail sur unset() et memory_get_usage() ?
    Bonjour,

    en faisant un peu d'optimisation je me suis aperçu de quelque chose de bizarre.

    Pour calculer l'utilisation de la mémoire d'un serveur j'utilise : memory_get_usage() et memory_get_peak_usage()

    - Lorsque je charge avec plein de texte une variable, la consommation de mémoire augmente (logique).

    - Lorsque je supprime cette variable avec la fonction unset(), la conso de mémoire ne redescend pas mais augmente

    - Même quand je fais des &références sur des variables lourde aucun gain de mémoire n'est retourné par les fonctions memory_get_usage()

    Qu'est-ce qu'il se passe j'ai loupé quelque chose, ça ne retourne pas la consommation réelle d'un script PHP ?

    Pouvez-vous me dire svp comment calculer la conso réelle de la mémoire voir même du processeur d'un script ?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Par défaut
    Question existentielle que tu nous pose.
    Malheureusement, je ne connais rien en l"utilisation de mémoire par PHP.
    C'est pour cela que je demande tout comme toi, si quelqu'un aurait davantage d'informations...

    Je vais me renseigner de mon coté.

    EDIT: 1- En utilisant les tests proposés sur la doc, on peut voir que les variations sont normales.
    DOC PHP
    La mémoire est bien libérée apres un unset.
    2- J'ai remarqué que plus la variables contient de données, mieux elle est libérée.
    Ce n'est pas trop logique...
    3- En fait, plus la variable est longue plus PHP considère qu'elle ne sera pas réutilisée ou un truc comme ca. car quand on réutilise la variable détruite, la mémoire ne varie plus.
    4- Test en ligne: http://igstaff.com/tests/memoire.php.
    PHP prend en compte si la page vient d'etre actualiser ou recharger pour son allocation de mémoire.

  3. #3
    Membre chevronné
    Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Par défaut
    L'appel à une fonction augmente la consommation de ressources aussi .

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Par défaut
    D'après les tests, non, cette fonction n'augmente pas les ressources utilisées.

  5. #5
    Membre confirmé Avatar de FrontLine
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 173
    Par défaut
    D'après les miens les unset($var) augmentent la consommation de mémoire, même si $var contient un texte ultra long (plusieurs ko).

    J'ai un objet $cache-> qui contient plusieurs ko (la page mise en cache), normalement un unset() dessus devrait libérer de la mémoire et ce n'est pas le cas.

    Bizarre

  6. #6
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Salut,

    J'ai aussi remarqué ce problème lorsque nous avons migré de php4->php5.

    On a des scripts qui font des traitements via des objets.
    Le tout dans une boucle de retour BDD.
    Ces traitements fonctionnaient sans problème en php4 mais rien a faire en php5, on a été obligés de faire appel a un script externe pour remplacer le contenu de la boucle

    Quelle version de php utilises-tu ?

Discussions similaires

  1. Détails sur les progress Bar
    Par nbeligh dans le forum MFC
    Réponses: 2
    Dernier message: 11/09/2006, 12h10
  2. [CRXI] Détail sur une ligne
    Par Julyon dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 21/08/2006, 15h03
  3. Réponses: 2
    Dernier message: 09/06/2006, 14h33
  4. concaténation des status d'un détail sur une ligne
    Par orafrance dans le forum Oracle
    Réponses: 11
    Dernier message: 02/06/2006, 10h13
  5. [QuickReport] Entete de groupe + détail sur la même page
    Par portu dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/06/2005, 11h15

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