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

avec Java Discussion :

Application très lente sous solaris


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Application très lente sous solaris
    Bonjour,

    j'ai un programme java qui fait des traitement sur les fichier texte

    le lancement de cette programme sous win xp fait 6heur de traitement

    mais sous solaris10 il fait plus que 10 jours je sais pas pourquoi merci de me aider.

  2. #2
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    pour moi 6h c'est déjà énorme c'est quel genre de traitement ?
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par sovo Voir le message
    pour moi 6h c'est déjà énorme c'est quel genre de traitement ?
    ==========
    Bonjour
    c'est un programme fait des traitement sur les fichiers plat 550Mo il regroupe des données et génére des fichiers de sortie

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Il faudrait revoir ton algorithme. A mon avis il est trop lent. Sur la machine en question, est-ce le CPU qui est à 100% ou le travail du disque dur?

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Il faudrait revoir ton algorithme. A mon avis il est trop lent. Sur la machine en question, est-ce le CPU qui est à 100% ou le travail du disque dur?
    ============
    Bonjour

    l'espace est suffisant il y a 2 prosse 480 pour la ram 2Go

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est pas la question que je t'ai posée. Est-ce le disque dur ton bottleneck ou le CPU? Tu peux le voir facilement. Si pendant 6 heure t'as un CPU à 100%, c'est que ton algo suce le CPU. Si pendant les 6h ton CPU est à 10% mais que ton disque dur gratte comme un malade, c'est que ton algo suce les IOs.

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    c'est pas la question que je t'ai posée. Est-ce le disque dur ton bottleneck ou le CPU? Tu peux le voir facilement. Si pendant 6 heure t'as un CPU à 100%, c'est que ton algo suce le CPU. Si pendant les 6h ton CPU est à 10% mais que ton disque dur gratte comme un malade, c'est que ton algo suce les IOs.
    ==============
    Bonjour

    sur mon machine (win xp) qui fait 6heurs le cpu est presque 20%

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    dans ce cas, il faut revoir ton code, tu lit probablement beaucoup trop de fois les même données sur ton disque dur. Si on prend un fichier de 512M, il doit pouvoir etre lu en moins de 5 minutes par la pluspart des machine moderne. Si tu passe 6 heure à lire dessus, ca sous entendrais que tu passe presque 80 fois sur chaque zone du fichier.

    Evidement, c'est qu'un supposition, on a pas la moidre idée d'a quoi ressemblent tes algorithmes!

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    dans ce cas, il faut revoir ton code, tu lit probablement beaucoup trop de fois les même données sur ton disque dur. Si on prend un fichier de 512M, il doit pouvoir etre lu en moins de 5 minutes par la pluspart des machine moderne. Si tu passe 6 heure à lire dessus, ca sous entendrais que tu passe presque 80 fois sur chaque zone du fichier.

    Evidement, c'est qu'un supposition, on a pas la moidre idée d'a quoi ressemblent tes algorithmes!
    ==========
    Bonjour
    merci pour votre colaboration. non j'ai 482 fichier de somme de 550Mo je voire que 6heurs pas grave mais pour les méme fichiers et meme programme il fait plus que 10 jours sur une autre machine (serveur) avec une autre systeme solaris

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par pchoucine Voir le message
    6heurs pas grave mais pour les méme fichiers et meme programme il fait plus que 10 jours sur une autre machine (serveur) avec une autre systeme solaris
    6h sur une bécane trés puissante dédiée uniquement à ce calcul, c'est énorme. Vu que l'autre machine doit probablement partager son CPU avec d'autres process, qu'elle n'a peut etre pas des IOs aussi performants et qu'elle a peut etre moins de CPU ou des CPUs moins rapide, rien d'étonnant qu'on passe à 10 jours. Encore une fois, sans code, difficile de te pointer tes erreurs.

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    +1 avec tchize_ : difficile de t'aider avec si peu d'info !

    Mais à tout hasard : tu n'utiliserais pas des appels à System.gc() ???


    a++

  12. #12
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    +1 avec tchize_ : difficile de t'aider avec si peu d'info !

    Mais à tout hasard : tu n'utiliserais pas des appels à System.gc() ???


    a++
    voici ci-joint le code source de mon projet et aussi un exemple de fichier qui traite
    Fichiers attachés Fichiers attachés

  13. #13
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Comment déjà par libérer proprement tes fichiers via des try/finally...

    a++

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    +1

    De plus, ton ecrire(fileOut, s); un peu partout dans le code est une catastrophe. A chaque fois que tu veux écrire un petit bout de texte, tu réouvre le fichier, tu te position à la fin, t'écrit quelques octet et tu le referme. Ouvrir un fichier est une opération consommatrice de temps.

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    					String fileOut = pr.getProperty("output") + "/"
     
    							+ fl[j].getName();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    				PrintWriter fileOut = new PrintWriter(new BufferedWriter(
     
    					new FileWriter(pr.getProperty("output") + "/"
     
    							+ fl[j].getName(), true)));
    ainsi que tous tes appels à


    par


    Franchement, ton code lit linéairement 500M de données pour réécrire à peu près autant de données dans le fichier de sortie. Les traitement qu'il effectue sur chaque ligne, d'un point de vue mathématique, doivent consommer 1 à 2 milliseconde. Une telle opération sur un gros fichier ne devrais pas mettre plus de 10 minutes sur une bécane moyenne. Je comprend pas pourquoi, pour une opération aussi linéaire, tu trouve admissible de travailler 6h!

  15. #15
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    +1

    De plus, ton ecrire(fileOut, s); un peu partout dans le code est une catastrophe. A chaque fois que tu veux écrire un petit bout de texte, tu réouvre le fichier, tu te position à la fin, t'écrit quelques octet et tu le referme. Ouvrir un fichier est une opération consommatrice de temps.

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    					String fileOut = pr.getProperty("output") + "/"
     
    							+ fl[j].getName();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    				PrintWriter fileOut = new PrintWriter(new BufferedWriter(
     
    					new FileWriter(pr.getProperty("output") + "/"
     
    							+ fl[j].getName(), true)));
    ainsi que tous tes appels à


    par


    Franchement, ton code lit linéairement 500M de données pour réécrire à peu près autant de données dans le fichier de sortie. Les traitement qu'il effectue sur chaque ligne, d'un point de vue mathématique, doivent consommer 1 à 2 milliseconde. Une telle opération sur un gros fichier ne devrais pas mettre plus de 10 minutes sur une bécane moyenne. Je comprend pas pourquoi, pour une opération aussi linéaire, tu trouve admissible de travailler 6h!
    Merci pour votre aide je teste avec votre remarque je vous informe que c'est fichier se sont des facture de telephone et internet pour un operateur telecome.

  16. #16
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    bonjour je vous informe que je change mon code, le temps d'execution est passe à 5h30 à la place de 6heurs mais je pence que sur solaris il dépace 10jours. je voire que le souci n'est pas sousci de code

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    on peux voir le code modifié?

  18. #18
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    on peux voir le code modifié?
    bien sur
    Fichiers attachés Fichiers attachés

  19. #19
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pour avoir une idée

    quel est le nombre de fichiers d'input?
    Quelle est la taille de listClientInt ?

    peux tu donner un ensemble de fichiers de tests qu'on essaye?

Discussions similaires

  1. Défilement d'une image très lent sous IE
    Par supergrey dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 03/03/2010, 19h50
  2. [treeView] Affichage très lent sous FF 3
    Par vg33 dans le forum jQuery
    Réponses: 4
    Dernier message: 28/04/2009, 20h34
  3. [A-03] DAO trés lent sous runtime
    Par REDHEAD dans le forum Runtime
    Réponses: 15
    Dernier message: 23/02/2009, 12h42
  4. MATLAB très lent sous Ubuntu 8.10
    Par plutus dans le forum MATLAB
    Réponses: 1
    Dernier message: 13/01/2009, 17h31
  5. application très lente
    Par hamham dans le forum Général Java
    Réponses: 13
    Dernier message: 17/01/2007, 15h41

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