J'essaie d'améliorer les performances du rendu d'image captcha dans une application web fonctionnant sous Linux. En regardant ce qui est actuellement utilisé, j'ai trouvé que le goulot d'étranglement est dans l'utilisation de Java2D et en particulier de la classe Graphics2D.Comment rendre la génération d'image évolutive sur Java?
Le problème n'est pas tant avec la vitesse d'exécution qu'avec l'évolutivité. Fondamentalement, cela ne change pas. Le dessin d'images captcha dans 1 thread ou 2 threads n'apporte aucune amélioration en termes de temps d'exécution. Par exemple, vous pouvez jeter un oeil à la classe suivante qui crée un arrière-plan pour les images captcha. Le problème apparaît sur les appels à Graphics2D :: setColor() et Graphics2D :: drawLine():
Après quelques recherches sur Google et j'ai trouvé le sujet qui dit que Java2D est pas particulièrement bien avec le multi-threading (désolé , pas autorisé à donner plus d'un lien :) mais, vous pouvez facilement trouver ce sujet si google pour 'java2d multithreading', ce sera le premier résultat)
Je crois qu'il doit y avoir une bibliothèque qui fournit des capacités de dessin withtout en utilisant Java2d, mais n'a pas réussi à le trouver :(Ou Java2d, probablement, peut être commuté à un mode, qui ne bloque pas sur l'accès à l'objet graphique (btw, le mode sans tête ne aide pas).
J'apprécierai toutes les suggestions. Au préalable, merci pour les réponses.
FWIW le premier coup que je reçois quand googler qui est sur l'écriture à la même objet graphics2D à partir de plusieurs threads. Pas à propos du cas où chacun a le sien. – wds
http://forums.sun.com/thread.jspa?threadID=5415900 Voici une citation - "Après un peu de googling, j'ai trouvé cet article de quatre ans qui parle du pipeline OGL de java qui ne permet le rendu que sur un seul thread (à partir de Java 1.6). " – Stas