|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Thomas EscolanArchitecte JEE/Spring - ScrumMaster Inscription : juin 2010 Messages : 200 ![]() |
Bonjour à tous,
Pour pouvoir exécuter un traitement (Ghost4j), j'ai dû augmenter les capacités mémoire de la JVM ; ainsi j'ai pu exécuter mes tests : Citation:
Code :
Citation:
Merci d'avance. |
||||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 095 ![]() |
Citation:
Par contre, si tu fais ça dans une logique de threads avec Executors.newCachedThreadPool(), ce code va être exécuté pas plusieurs threads à la fois, et chacun d'eux va consommer de la mémoire. Du coup, même si la mémoire suffit pour faire un traitement à la fois, elle ne suffit pas pour en faire plus d'un. Il ne faut pas avoir plusieurs threads. Seulement un seul. Avec newSingleThreadExecutor(). |
|
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : août 2004 Messages : 8 227 ![]() |
Ou un fixedThreadPool, qui s'assure du nombre maximum de threads en parallèle.
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Thomas EscolanArchitecte JEE/Spring - ScrumMaster Inscription : juin 2010 Messages : 200 ![]() |
Merci à tous les deux ; mais je ne voix pas l'intérêt du SingleThread ??
Quant au FixedThread, j'ai mis à 2 ; et ça plante encore...
|
|
|
00
|
|
|
#5 | |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 535 ![]() |
Citation:
Ou encore éviter que plus d'une tache qui parait anormalement gourmande ne tourne en parallèle. Tu peux encore augmenter ton Xmx (au moins à 1024, après ça dépendra de ton runtime et de ton OS 32 ou 64 bits). Etant donné que t'as mémoire gonflera à coup sur tu peux mettre ton Xms à la même valeur (ça ne changera rien au pb mais ca evite de perdre du temps à allouer plusieurs fois) Tu peux sans doute gratter de la mémoire sur ton MaxPermSize. Je ne connais pas Ghost4j mais je trouve particulièrement louche que tu aies besoin de 512M pour générer des pdfs. Je suppose que la meilleure solution ne réside pas dans l'augmentation infinie de la mémoire allouée à la JVM. |
|
|
|
00
|
|
|
#6 | |
|
Membre habitué
![]() Thomas EscolanArchitecte JEE/Spring - ScrumMaster Inscription : juin 2010 Messages : 200 ![]() |
Citation:
En fait c'est un traitement qui crée des vignettes PNG à partir de fichiers PDF. J'ai fait des essais avec PDF Renderer, PDF box et jPedal, mais seul GhostScript a traité l'ensemble des éléments affichés, qui plus est sur des formats multiples. L'extraction de la première page (cover) prend 25 minutes, tandis que le traitement sans extraction PNG passe en 3s. Je précise toutefois qu'il y a environ 300 fichiers PDF (on n'a donc que quelques secondes d'extraction par fichier). J'avais augmenté les paramètres JVM pour que ça fonctionne, mais je pensais (bêtement) passer entre les gouttes avec du threading. Je comprends maintenant que le ratio entre le temps "sans" et celui "avec" traitement GhostScript est beaucoup trop grand pour que ça donne quelque chose, eu égard au nombre de fichiers PDF. Il me reste à faire des essais avec IcePdf ; quelqu'un a des infos là-dessus, SVP ? |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com