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

BIRT Discussion :

[Birt 4.4.0] Question performances


Sujet :

BIRT

  1. #1
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut [Birt 4.4.0] Question performances
    Bonjour,

    Je dois produire des PDF en masse avec Birt. (pas un PDF avec plein de documents dedans mais un PDF par document)
    Actuellement, en passant par un XML fourni à Birt, j'arrive à 72s pour 1000 documents.

    Mais Birt peut fonctionner avec des requêtes en entrée plutôt qu'un XML.

    Savez vous me dire quelle est la méthode la plus performante et me faire un retour de votre expérience ?

    Merci

  2. #2
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Peu tu donnes plus de détail sur comment tu générer des documents PDF ? Par exemple sont-ils demandé via une interface Web ou juste une application java qu'il les généré en back-end ? Ou autre
    NB : dans mon cas j’ai utilisé une application web JavaEE (avec une simple servlet en front-end) sur un glassfish3.1 c’est clair que ce n’été pas une bête de course

  3. #3
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    La génération des PDF se fera en masse.

    Je fais en java, dans un ERP.

    J'instancie mon moteur Birt une seule fois puis je génère chaque PDF dans une boucle pour les enregistrements concernés de ma base de donnée.

  4. #4
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    Bonjour,

    Je reviens vers vous pour vous faire part de mes résultats et voir ce que vous en pensez pour voir si je peux optimiser ça.

    Pour rappel, Birt est appelé dans un batch java, via un code qui ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    EngineConfig config=  new EngineConfig();
    Platform.startup(config);
    IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
    IReportEngine engine = factory.createReportEngine(config);
    
    IReportRunnable report = engine.openReportDesign(BIRT_HOME+BIRT_RPTDESIGN_FILE_NAME);
    IRunAndRenderTask task = engine.createRunAndRenderTask(report);
    
    task.setParameterValue("parametre1", "test");
    task.validateParameters();
    
    PDFRenderOption options = new PDFRenderOption();
    options.setOutputFormat("pdf");
    task.setRenderOption(options);
    
    for (int i=1;i<1000;i++){
        options.setOutputFileName(le_nom_du_fichier_a_creer);
        task.run();
    }
    
    task.close();
    engine.destroy();
    J'ai testé deux solutions :
    1. récupération des données de la BDD (iséries) en java, que je passe en paramètre à BIRT pour générer les pdf : temps total pour 1000 documents -> 180s
    2. récupération des données effectuées par birt : temps total pour 1000 documents -> 600s

    Je pensais que ça serait plus rapide si BIRT récupérait les données, mais ce n'est pas le cas.

    Mon problème, c'est que 180s c'est pas terrible. Quand j'avais fait un POC en utilisant un fichier XML statique comme source, j'était arrivé à 1000 documents en 72s.
    Mais maintenant que je dois récupérer mes données en base, je ne peux pas passer par un fichier XML.

    Auriez vous des conseils afin que j'optimise tout ça ?

    Merci

  5. #5
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Ajouter des index à ta base et optimiser tes requêtes.

    Note, si tu utilises les mêmes données dans plusieurs rapports BIRT, il vaut mieux les extraire en amont (en Java), pour les transmettre à ton rapport plutôt que de lancer tes rapports qui vont redemander les mêmes données à chaque fois.

Discussions similaires

  1. Question performance web service
    Par zulot dans le forum Services Web
    Réponses: 5
    Dernier message: 14/09/2007, 10h06
  2. Question performance et "taille" d'une requête
    Par RR instinct dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/08/2007, 14h43
  3. [ORACLE + ADO] Question performance
    Par fx_dev dans le forum Oracle
    Réponses: 1
    Dernier message: 10/07/2006, 10h53
  4. Question performance sur requetes sql
    Par shinrei dans le forum ASP
    Réponses: 7
    Dernier message: 19/05/2006, 13h28
  5. [RegEx] Question performance avec preg_replace_callback()
    Par Thierry8 dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2006, 19h09

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