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 :

Utilisation des sessions


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 26
    Points : 23
    Points
    23
    Par défaut Utilisation des sessions
    Bonjour,
    J'utilise beaucoup de variable session sur mon site (je ne sais pas si j'en abuse).
    Question : l'utilisation de ce type de variable mobilise-t-elle de la RAM ? Si non, comment sont stockées ces variables sur le serveur ?

    Pour info, je pose cette question car j'utilise trop de RAM sur le serveur et je travaille actuellement sur mes fonctions pour les rendre plus efficientes.
    Merci pour vos réponses

  2. #2
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Bonjour

    Il me semble que cette question est correcte sur le plan théorique (=c'est une bonne question et comprendre comment cela fonctionne peut être utile)

    Toutefois je doute que tu stockes des centaines de MB en RAM aussi si ton serveur est déjà à bout de souffle, c'est interpellant.

    La RAM est peu chère et ne devrait pas être un facteur bloquant.

    Et devrait même être plus utilisée par exemple avec une couche de cache (je pense à Redis).

    Au final pas de réponse de ma part mais juste une présomption que ton problème est ailleurs (mauvaise configuration serveur, vieux serveur obsolète,...)
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Merci de vous intéresser au sujet et merci pour la réponse.
    Le problème n'est pas technique, ce n'est pas non plus une question de prix.
    Mes fonctions utilisent beaucoup de ressources, c'est un symptôme. Le code n'est pas efficient et je dois l'améliorer, je cherche maintenant les causes les plus probables. Je me pose donc la question est-ce que les variables sessions sont consommatrices de RAM.

  4. #4
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    C'est toi qui sait ce que tu stockes en mémoire... Je présume que c'est peanuts mais à toi de voir la consommation de ton code.

    Tu dis que ce n'est pas efficient mais est-ce un problème de mémoire ou d'optimisation de ton code lenteur db, code php vraiment mal écrit,...)

    Je doute que ce soit la RAM ton souci... Just my feeling
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Exemple de problème :
    J'interroge une table régulièrement avec une fonction de traitement des données très lourde. Donc pour éviter de rappeler cette fonction régulièrement, j'ai stocké le résultat dans une variable session. Comme je ne connais pas le fonctionnement d'un serveur (désolé), je me dis que si la session est stockée dans la RAM ma solution n'est peut être pas la bonne puisque chaque utilisateur va consommer de la RAM en permanence au lieu de l'utiliser ponctuellement lors de l'appel de la fonction.
    C'est un peu ça l'idée ...

  6. #6
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Et tu as parfaitement raison de faire ce choix, totalement raison. C'est ce que fait redis si tune connais pas. Redis permet de créer un système de clef valeur cross user (ton utilisateur 152 ainsi que les 150 précédents vont utiliser le cache du tout premier gars). Tu es dans la bonne direction.

    En php pur (les sessions donc), je ne les pratique pas assez mais oui elles sont dépendantes de l'utilisateur (donc 152 sessions). Peux-tu trouver une solution cross user avec les sessions ? Je présume mais je n'ai pas directement la réponse.

    Note que tu pourrais ne pas utiliser une variable session mais un fichier cache. Si le fichier cache n'existe pas, tu fais la requête db et tu crées le fichier. Si le fichier existe, tu vois s'il est toujours opportun (est-il vieux d'un jour, une semaine,...) et si tu souhaites l'utiliser, facile, juste une lecture du fichier.

    Si tu as la possibilité d'utiliser redis (est-il installé), c'est encore plus simple.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  7. #7
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Bonjour,

    D'après la doc, la sauvegarde des sessions php est gérée par défaut via le système de fichier : voir la directive de configuration session.save_handler qui est définie par défaut avec le gestionnaire files
    D'autres gestionnaires de sauvegarde de session sont fournis par des extensions php (sqlite, redis, ...).

    La classe SessionHandler ou l'interface SessionHandlerInterface permettent de créer son propre gestionnaire de session personnalisé :
    https://www.php.net/manual/fr/session.customhandler.php

    Si les lenteurs viennent des requêtes, p-e commencer par voir les éventuelles optimisations possibles au niveau de la bdd.

Discussions similaires

  1. utilisation des sessions dans les jsp
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/08/2006, 19h45
  2. [FPDF] fpdf et utilisation des sessions
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 11/05/2006, 18h46
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Réponses: 5
    Dernier message: 22/08/2005, 16h48
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

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