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

Ruby on Rails Discussion :

Problèmes de performances


Sujet :

Ruby on Rails

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 28
    Points
    28
    Par défaut Problèmes de performances
    Bonjour,
    dans le cadre d'un stage j'ai developpé une application intranet avec Rails, mais j'ai un gros problème de performances.
    Est-ce que le fait d'utiliser des variables de session augmente les temps de réponse ?

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 172
    Points : 219
    Points
    219
    Par défaut
    Bonjour,

    Heuh... C'est pas vraiment aux variables de session que je penserai en premier lieu. D'ailleurs, il vaut mieux d'ailleurs éviter de trop charger la variable session. Se contenter d'y stocker un id pointant sur une ligne de table en base par exemple.

    Pour les perfs, je m'interrogerais (dans l'ordre) :

    * Sur le serveur Web utilisé :
    Utiliser mongrel de préférence à Webrick. Le configurer en mode cluster de charge, surtout sur les architectures multiprocesseurs, avec nginx ou Apache en frontal.

    * Sur l'utilisation des mécanismes de cache : fragment, page, contrôleur, ....

    Savoir aussi que l'interpréteur Ruby / Rails est pour le moment légèrement moins performant sous Windows que sous Linux.

    Côme

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    ok, merci
    l'hébergement est imposé, je suis sous windows 2003 avec apache2, je vais continuer à optimiser le code.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Salut,

    Tu utilises bien Mongrel ? Il est beaucoup plus rapide que Webrick (de mémoire il me semble que c'est environ 2x plus rapide en moyenne).

    Tu as bien vérifié aussi que tu étais en environnement de production et non pas développement ?

    Penses aussi à utiliser le plus possible l'option 'include' dans tes finds, surtout si tu as beaucoup de modèles dépendant d'autres. Par exemple :
    Soit 2 modèles : User et Document (User has_many :documents, Document: belongs_to :user)
    Si tu veux lister les documents avec leurs users respectifs :
    Code Vue : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <% for doc in @documents %>
      <%= doc.title %> appartient à <%= doc.user.name %>
    <% end %>
    Code Controlleur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    # Génére n+1 requêtes (n = nombre de documents) : 1 pour le document puis 1 pour recuperer le user pour chaque document
    @documents = Document.find :all
     
    # Génére 1 requête
    @documents = Document.find :all, :include => :user
    La différence peut être importante si tu as beaucoup de documents à lister



    Enfin, peux-tu donner quelques chiffres pour avoir une idée ? Quel est ton hardware, tes temps de réponse en moyenne, etc. ?
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    je n'ai pas testé mongrel car apache m'est imposé, je fais des tests cette après midi et j'vous tiens au courant.
    Pour ce qui est des requetes, pour la plupart j'ai utilisé find_by_sql car elles sont trop complexes pour ror

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 657
    Points : 910
    Points
    910
    Par défaut
    Heuuu...
    Mongrel ne s'utilise pas en frontal de toute façon, il est toujours couplé à un serveur qui lui dispatch les requêtes (Apache+mod_proxy, nginx, lighty, etc.)

    Actuellement tu utilises quoi ? Apache + FastCGI ?
    Si tu es en CGI simple (pas FastCGI), ne cherche pas plus loin !! c'est horriblement lent car il est obligé de recharger tout Rails à chaque requête.

    Et pour l'environnement, tu as vérifié que tu étais en production ?
    Toute la documentation Ruby on Rails : gotapi.com/rubyrails
    Mes articles :
    > HAML : langage de template pour Ruby on Rails

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 104
    Points : 120
    Points
    120
    Par défaut
    Je plussoie Taum pour le mode production qui améliore pas mal les perfs et surtout, surtout le CGI, horriblement lent ( maintenant j'ai du Lighttpd + FastCGI, ça va mieux )

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

Discussions similaires

  1. Problème de performance avec LEFT OUTER JOIN
    Par jgfa9 dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/07/2005, 13h17
  2. [jeu]problème de performance d'un algo
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 30/05/2005, 16h07
  3. [C#] Probléme de performance avec IsDbNull
    Par jab dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2005, 11h39
  4. [oracle 9i][Workbench]Problème de performance
    Par nuke_y dans le forum Oracle
    Réponses: 6
    Dernier message: 03/02/2005, 17h38
  5. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 16h18

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