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 :

fonction vider memoire cache serveur


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut fonction vider memoire cache serveur
    Bonjour,

    Je suis sur un hébergement mutualisé chez 1and1, et j'ai un script qui génère des images assez gourmand... De plus, chez 1and1, MEMORY_LIMIT est bridé à 32M...

    Mes images sont générées dans une boucle, alors je me disais qu'à la fin de chaque boucle je pouvais vider la mémoire cache du serveur de manière à ne pas atteindre les 32M...

    Est-ce possible? Si oui comment?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 406
    Points : 380
    Points
    380
    Par défaut
    Je ne sais pas si ça peut t'aider, mais il y a une astuce pour vider le cache serveur (c'est ce que j'utilise en local):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    header("cache-Control: no-cache, must-revalidate");  
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Date antérieure
    Et sinon, il y a une extension, mais c'est à installer côté serveur :APC.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    cache-control donne des directives aux proxy et aux clients sur les possibilités d'utiliser le document qu'ils auraient en cache.
    ca n'a aucun rapport avec le serveur PHP, d'ailleurs aucun en-tête HTML ne saurait agir le fonctionnement de PHP.


    Si les données s'écrasent a chaque tour de boucle, l'utilisation mémoire ne devrait pas augmenter.
    Comment stockes-tu tes images dans chaque boucle ?
    Eventuellement controle ce qui se passe dans l'utilisation mémoire avec memory_get_usage().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Je viens de faire un test, et ca me parait bizarre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while($i<$nb)
    {
    ...
    $mem=memory_get_usage(true);
    $mem=$mem/1048576;
     
    echo "$mem M <br>";
    $i++;
    }
    Voici le résultat:
    1.2653503417969 M
    1.266845703125 M
    1.2665863037109 M
    1.2667236328125 M

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Moi ca me parrait au contraire coherent : La création de chaque image a peu pres la meme quantité de mémoire et cela ne se cumule pas puisque que les variables sont ré-utilisées a chaque boucle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Alors ca détruit ma thèse selon laquelle se serait à cause de MEMORY_LIMIT que mon script s'arrete!

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    Peut être plutot regarder du coté du temps d'exécution maximal autorisé. Si tu traite beaucoup d'image ce n'est pas impossible que tu dépasse la limite des 30 sec par défaut
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Non, mon script plante en moins de 10sec... et le temps d'execution max est de 30sec...
    Ca me désespère de ne pas trouver!! lol

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 71
    Points : 49
    Points
    49
    Par défaut
    Yop!

    Dommage qu'on ai pas la réponse à la question initiale....

  10. #10
    Invité
    Invité(e)
    Par défaut
    Depuis un VPS ou un serveur dédié : Vider le cache Apache :
    Htcacheclean - Nettoyage du cache sur disque : http://careers.disneylandparis.com/m...acheclean.html
    Htcacheclean - Nettoyage du cache sur disque : https://httpd.apache.org/docs/2.4/pr...acheclean.html


    Vider le cache Apache avec PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("cache-Control: no-cache, must-revalidate");  
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); //Date antérieure
    Par contre, pourquoi vider le cache de la sorte, avec PHP et la configuration des header, si le but est justement d'avoir un cache pour optimiser les performances de consultation du site ?

    Si le script plantait, était-ce vraiment du fait de la mise en cache ?
    Le code proposé ne pouvait t'il pas être optimiser autrement ?

Discussions similaires

  1. Memoire cache 4D 2003 et Windows serveur 2003
    Par okin283 dans le forum 4D
    Réponses: 4
    Dernier message: 16/09/2009, 10h45
  2. Réponses: 3
    Dernier message: 28/05/2009, 14h50
  3. [C#] Vider le cache d'un client
    Par dupin40 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/09/2007, 12h21
  4. Utiliser la memoire cache
    Par trax44 dans le forum Assembleur
    Réponses: 2
    Dernier message: 25/10/2005, 20h11
  5. Vider le cache des archives
    Par Thrystan dans le forum Debian
    Réponses: 4
    Dernier message: 30/06/2005, 11h55

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