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 :

[Tableaux] Exploitation de la mémoire avec PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Par défaut [Tableaux] Exploitation de la mémoire avec PHP
    Bonjour à tous,

    J'ai une question à poser à propos de l'occupation en mémoire des calculs en PHP(je pense que c'est un peu identique pour les autres langages).

    J'explique en gros le script. Il permet d'insérer des données issues de fichiers textes dans une base de données selon certaines conditions.

    soit :

    1/ Pour chaque fichier
    On lit le fichier lignes par lignes
    On teste les conditions
    On insère les valeurs dans un tableau
    Fin pour

    2/ On traduit le tableau pour mettre les valeurs dans un fichier texte

    3/ On fait un Load data infile du fichier dans la base de donnée

    Ma question est la suivante, php utilise quelle mémoire pour effectuer les opérations ? RAM ? Fichier d'échange ? Mémoire virtuelle ?

    J'aurais tendance à dire que les operations se font exclusivement en RAM.

    Est ce que ca vous etonne que 100Mo de données en fichier texte utilise la totalité de 512Mo RAM ?

    Merci par avance


    ps : connaissez vous des sites qui explique comment est exploité la mémoire ?

  2. #2
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Ce n'est pas PHP qui s'occupe de la gestion de la memoire physique.
    C'est le systeme d'exploitation.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Par défaut
    Je suis d'accord mais PHP gère ses performances aussi.

    je cherche un lien comme celui-ci mais pour le php

    http://4d.developpez.com/notes-techn...gestion-cache/

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Par défaut
    un petit up,

    personne n'a de connaissance ?

  5. #5
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Bonjour,

    Les tableaux en PHP consomment beaucoup plus de mémoire que le "contenu brut", à cause d'un système de hashage.

    Ce hashage permet d'avoir des tableaux très rapides d'accès, avec la contrepartie qu'il consomme beaucoup de mémoire.

    D'un autre coté, charger 100Mo d'une traite, ça ne me semble pas vraiment "optimisé" : pour lire un DVD de 4.7Go tu le chargerais entièrement en mémoire ?
    D'autant plus qu'ici le fait de le charger en mémoire ne t'apporte rien du tout.

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 129
    Par défaut
    Citation Envoyé par Kioob
    Bonjour,

    Les tableaux en PHP consomment beaucoup plus de mémoire que le "contenu brut", à cause d'un système de hashage.

    Ce hashage permet d'avoir des tableaux très rapides d'accès, avec la contrepartie qu'il consomme beaucoup de mémoire.

    D'un autre coté, charger 100Mo d'une traite, ça ne me semble pas vraiment "optimisé" : pour lire un DVD de 4.7Go tu le chargerais entièrement en mémoire ?
    D'autant plus qu'ici le fait de le charger en mémoire ne t'apporte rien du tout.
    Merci pour l'info sur les tableaux

    je ne charge pas 100Mo d'une traite. Cela dépend du nombre de fichier à importer.

    Pour chaque fichier, j'ai :
    - j'ouvre le fichier
    - je le lis ligne par ligne et je récupère les valeurs selon des tests dans un tableau
    -je ferme le fichier

    Les valeurs contenues dans le tableau peuvent varié en fonction des valueurs contenues dans les autres fichiers.

    La taille du tableau final arrive à une taille de 8/10Mo(je dis bien du tableau).

    Le "probleme" que je rencontre est que pour les 1er fichiers, le traitement s'effectue tres rapidement puis apres quelques minutes de traitement les performances chutent en fonction de la quantité de RAM sur le serveur.

    Sinon à propos du fait que je ne gagne rien, sur un traitement dans une base de données, le script mets 20min. Avec les tableaux moins de 3 min. Je crois qu'on y gagne quelque chose.

    Après, s'il y a une autre méthode moins gourmande et aussi efficace je suis preneur.

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

Discussions similaires

  1. [Tableaux] Exploiter un DataSet de .net avec PHP
    Par Kioo dans le forum Langage
    Réponses: 3
    Dernier message: 21/02/2008, 17h15
  2. Réponses: 4
    Dernier message: 05/12/2006, 20h13
  3. Réponses: 3
    Dernier message: 02/08/2006, 18h10
  4. [Tableaux] Tableau dynamique avec php
    Par Ricus28 dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2006, 22h46
  5. [Tableaux] Imprimer avec php
    Par amarcil dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2006, 17h18

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