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 :

A quoi servent les API de sérialisation ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut A quoi servent les API de sérialisation ?
    Bonjour,

    J'ai utilisé plusieurs api de serialiastion tel que Simple, Xstream Jaxb, en java pour pourvoir persister les données xml sous format object, mais lorsque je compare les résultats de conversion je remarque que ca prend un peu de temps.

    J'ai développé une petite lib fait maison qui utilise saxParser et je remarque que c'est beaucoup plus rapide a réaliser cette conversion xml/java bean que les api que j'ai cité plus haut.

    Pouvez vous me dire l'intérêt d'utiliser ces différents API?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Les gens qui ne comprennent pas grand-chose à XML développent bien plus vite avec ce genre d'API de sérialisation, qui leur évitent de comprendre vraiment ce qu'ils font.

    Personnellement, je pense que ça ne marche que dans des cas très simples, où XML n'est intéressant que parce que c'est ce que tout le monde fait, alors que ce serait plutôt le boulot de CSV ou .properties.
    Mais de manière générale, je confirme : dès qu'on sait un peu ce que c'est XML, on va toujours bien plus vite en codant la sérialisation directement, qu'en essayant de s'intégrer avec ces API censées faire gagner du temps.

    Il y a des exceptions, comme gson. Pas besoin d'intégration du tout, il fera une sérialisation automatique très simplement si on a juste des POJO à traiter. Mais bon, du coup c'est à peine plus élaboré que la sérialisation native de Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Bonjour,

    Effectivement vous venez de confirmer ce que je pensais. Il me semble que ces API utilisent pour la plus part la Reflexion et les annotations , est ce que c'est lié au ralentissement du traitement de conversion?

    Il y a également l'interface Serializable natif de java que je n'ai pas pu tester, simplement je voudrais savoir ce qu'il apporte de plus que les API externes

    Merci de votre réponse.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    D'accord je parlais de complètement autre chose.

    Je croyais que tu parlais du temps pour développer le fonctionnel, pas du temps que le programme passe à sérialiser/désérialiser.

    Les approches en SAX/Stax sont plus rapides que les libs que tu utilises, parce qu'elles font le traitement en ligne : elles lisent un peu de données et les traitent, puis passent à la suite.
    Alors que les autres méthodes consistent à charger entièrement en mémoire le modèle XML, puis d'en faire quelque chose. Il peut arriver que ça revienne au même... Mais c'est rare. D'habitude ça veut surtout dire qu'on traite au moins deux fois les données, dans les deux sens. Normal que ce soit plus long.

    En l'occurrence, c'est pas du tout ce dont je parlais. Moi je parlais du temps qu'on met pour programmer les choses. Je ne trouve pas que les bibliothèques de sérialisation/désérialisation automatiques soient pratiques. Mais celles qui chargent tout en mémoire, ça je trouve que c'est plutôt normal, ça simplifie tout, même si on perd en performances.

    Citation Envoyé par Rohan21 Voir le message
    Il y a également l'interface Serializable natif de java que je n'ai pas pu tester, simplement je voudrais savoir ce qu'il apporte de plus que les API externes
    De plus ? Humm... Pas besoin d'intégrer encore une autre API externe, ça fait partie de Java de base, et géré par la plupart des bibliothèques tierces.
    C'est aussi un peu plus compact que quoi que ce soit d'autre, et souvent un petit peu plus rapide.

    ... Mais à part ça, ça n'apporte pas grand-chose. C'est Java-only et pas intéropérable, ça résiste mal aux évolutions du programme, on manque de contrôle sur le flux de données généré.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Quand tu dit :
    Alors que les autres méthodes consistent à charger entièrement en mémoire le modèle XML,
    Est ce que cela revient à utiliser DOM? puisque ce dernier créer un arbre xml et charge tout dans la mémoire.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est le même principe, en tout cas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. à quoi servent les .dsm ?
    Par fidji dans le forum Delphi
    Réponses: 4
    Dernier message: 14/06/2006, 19h37
  2. [MySQL] A quoi servent les réferences entre les tables??
    Par Alain15 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/02/2006, 16h19
  3. A quoi servent les index dans une BDD ?
    Par Melvine dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 25/10/2005, 12h14
  4. [CR 10] A quoi servent les Templates Fields ?
    Par caviar dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 10/11/2004, 10h52
  5. [C#] A quoi servent les interfaces???
    Par sof_nns dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/10/2004, 20h51

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