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 Java Discussion :

Questions sur les FastArrayLists


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut Questions sur les FastArrayLists
    Bonjour, j'ai un soucis de perfomance avec mon programme et je souhaiterais utiliser des fastarraylist du projet jakarta.Mon probleme est que mon programme doit etre cross-platform (windows,linux,mac,AS400) et que les fastarraylist ne le sont pas! alors deux questions :
    est-ce que les fastarraylist sont vraiment plus performante que les arraylist normal?
    et y'a t'il un moyen de les utiliser en cross-platform.

    Merci pour vos réponses

  2. #2
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut
    Pourquoi les FastArrayList ne seraient pas multi-plateformes ?

  3. #3
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    C'est ce qui est mis dans leur Javadoc en tous cas...
    FastArrayList

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    As-tu réussi à cibler précisément l'origine des mauvaises performances ?

    a++

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Les mauvaise performances sont du à l'utilisation des arrayList je pense, mais meme si je me trompe j'aimerais utilisées des fastArraylist quand meme.
    Beaucoup de personne dise cross platform et la javadoc dit "pas cross plat form" (et j'ai pas trop compris pourquoi mon anglais étant rudimentaire)


    en fait le probleme c'est que j'essaye de charger un gros gros fichier CSV (130m) et que le serveur sature en mémoire.....

  6. #6
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Mets du code (lecture du csv), ton problème de performances ne dois pas forcément être lié aux ArrayList.

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    désolé je ne peut mettre le code car il est tres tres complexe et tient sur plusieurs classe.En tres gros je le lit une fois et stocke le fichier sous la forme d'une collection de collection (une collection pour chaque collonne qui contient une collection de ligne) et la ca pose probleme.
    Je sais bien que il n'y a pas que les arrayList qui gene et je travaille dessus mais je voudrais vraiment utiliser les FastArrayList dans mon programme mais sont-elle vraiment cross platform ou pas?

  8. #8
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Baharroth
    désolé je ne peut mettre le code car il est tres tres complexe et tient sur plusieurs classe.En tres gros je le lit une fois et stocke le fichier sous la forme d'une collection de collection (une collection pour chaque collonne qui contient une collection de ligne) et la ca pose probleme.
    Juste pour info : combien de temps prend ton programme ???


    Citation Envoyé par Baharroth
    mais je voudrais vraiment utiliser les FastArrayList dans mon programme mais sont-elle vraiment cross platform ou pas?
    Ben non : c'est écrit noir sur blanc dans la javadoc...

    a++

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Oki alors tant pour les fastarraylist

    le temps n'est pas telment un grand probleme.sans ranger mon csv dans des collection je met 7 minutes a le lire en entier (40000 colonnes....130mo)

    le probleme c'est la mémoire,je suis limité a 256 sur le serveur et je l'explose car j'arrive pas a tout charger d'un coup.

  10. #10
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Il faut que tu réussisses à faire ton traitement au fur et à mesure (sans tout charger au départ) si tu es limité en mémoire, t'as pas le choix...

  11. #11
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    d'accord alors je vais m'orienté sur cette voie, traiter qu'un partie du csv a chaque fois.


    merci a tous pour vos réponses!

  12. #12
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    je dis ça comme ça mais peut être n'est ce pas possible dans ton cas.

    Si tu chargeais ton csv dans une bdd au lieu de le charger en mémoire ? Après avec les requetes SQL qui vont bien tu récupère au coup par coup ce dont tu as besoin. De plus, le moteur SQL pourrait te faire une partie des traitements que tu fais en java.

    mais bon, c'est une grosse modif dans la conception ...

  13. #13
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    effectivement l'idée est intéréssante mais la modif est assez énorme dans mon cas.Mais je vais étudier cette possibilité!
    Merci a toi!

  14. #14
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Citation Envoyé par in
    je dis ça comme ça mais peut être n'est ce pas possible dans ton cas.

    Si tu chargeais ton csv dans une bdd au lieu de le charger en mémoire ? Après avec les requetes SQL qui vont bien tu récupère au coup par coup ce dont tu as besoin. De plus, le moteur SQL pourrait te faire une partie des traitements que tu fais en java.

    mais bon, c'est une grosse modif dans la conception ...
    Ba dans ce cas autant utiliser directement une API de requêtage dans le CSV (si une BD n'est pas déjà en place...). D'ailleurs faire des requêtes et récupérer ce qu'on veut, quelque part c'est aussi découper le traitement.

  15. #15
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par remika
    Ba dans ce cas autant utiliser directement une API de requêtage dans le CSV
    Oui c'est clair ... à vrai dire je ne savais pas que ça existait ...

    et c'est performant ??

  16. #16
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    mais qu'est ce qu'une API de requêtage? comme on l'integre dans un CSV?

    désolé je n'est que 6 mois d'exp en Java....

  17. #17
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    En fait plus précisément, il existe des drivers JDBC pour les fichiers csv directement. Je ne sais pas si c'est performant mais ça a le mérite d'éviter d'utiliser un SGBD s'il n'y en a pas déjà en place (en même temps utiliser un SGBD c'est pas la mort non plus).
    Pour ce qui est de JDBC, tu peux consulter la FAQ JDBC, et les tutoriels du site.

    Exemple de driver JDBC CSV

  18. #18
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 138
    Par défaut
    Il y a aussi la possibilité de faire une classe qui s'utilise comme un tableau, mais en interne lit le fichier.
    C'est un peu compliqué (il faut géré les lignes et les colonnes), et c'est plus lent que le mettre en memoire mais cela peut te permettre de ne pas trop modifier tes algorithmes.
    Par exemple, un get(i,j) lit la ligne i et la colonne j du fichier (en prenant en compte le séparateur de ligne \n et le séparateur de colonne .

  19. #19
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    Je crois que je vais utiliser ton exemple de csvjdbc, je crois que c'est pile ce qu'il me faut et en plus c'est du Lgpl cross platform!

    pour lhistoire de la classe qui lit une ligne désigné et une colonne, j'ai peurque ce la rallentisse les traitements avec beaucoup d'accés au fichier qui ce trouve sur un serveur.

    Merci pour vos réponse!

  20. #20
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    J'ai un gros probleme car la JdbcCSV ne prend pas en compte les guillemets dans les champs entre guillemets ex : "Article "ID" client" la ya erreur car il y a guillemet dans guillemet.
    quelqu'un aurait-il un conseil?

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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