3 votes

accélérer jasperreports

Je viens de faire le profil de mon application de reporting lorsque j'ai essayé de générer quatre fois le même rapport à la suite. Le premier a pris 1859 ms alors que les suivants n'ont pris qu'entre 400 et 600 ms. Comment cela s'explique-t-il ? Puis-je l'utiliser pour rendre mon application plus rapide ? le module de reporting tourne sur le serveur et attend que l'utilisateur clique sur "imprimer le rapport" .

3voto

Carl Smotricz Points 36400

Les exécutions ultérieures du rapport ont étendu la mémoire et rempli divers caches.

N'ayant jamais vu votre application, je pense que l'effet le plus important est que votre serveur de base de données met en cache les données que vous demandez. Il charge les données sur le disque et dans la mémoire, et n'ayant rien de mieux à faire de cette mémoire, il la laisse là. La prochaine fois que la requête arrive, la base de données n'a pas besoin d'aller chercher les données sur le disque, elles sont toujours là, en mémoire.

La façon la plus évidente et la plus simple d'exploiter cette situation est d'exécuter une "fausse" requête avant que vos utilisateurs ne soient lâchés sur le système ; cela signifierait que vous absorbez les 1800 ms d'attente et que vos utilisateurs bénéficient des 400 ms. Malheureusement, cela ne fonctionnera que si toutes les requêtes sont identiques, c'est-à-dire si tout le monde demande le même rapport. S'il y a des rapports différents et des données différentes, les caches seront vidés pour les données différentes et il faudra plus de temps pour charger les nouveaux résultats.

En bref : si l'on vous pose toujours la même question, vous pouvez donner des réponses très rapides, mais vous ne présentez alors jamais rien de nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X