cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: Dégradation régulière de performances avec cocoon.getComponent()
Date Mon, 22 May 2006 21:10:07 GMT
gael@pegliasco.com wrote:
> Bonjour,
>
> J'ai r�alis� une petite fonction flowscript dont les performances se d�gradent
> un peu plus � chaque appel pour devenir carr�ment lente (plusieurs secondes) au
> bout de quelques appels.
>
> Apr�s avoir mis en place des sondes pour observer o� le temps �tait perdu, il
> s'av�re que c'est l'instruction cocoon.getComponent() qui mange tout le temps
> utilis�.
>
> Ainsi j'ai localis� 2 composants posant probl�me :
>
> cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE)
> et
> cocoon.getComponent(org.apache.cocoon.portal.coplets.basket.BasketManager.ROLE);
>
> Avec d'autres composants je ne constate pas ces d�gradations de performances.
>
> J'utilise un Cocoon 2.1.9-dev.
>
> Avez-vous une id�e de ce qui peut provoquer ces d�gradations de perfs (environ
> 100ms par appel), soit 1 sec au bout de 10 appels, 10 sec au bout de 100
> appels.
> C'est � dire que la fonction demande 100ms, puis 200ms puis 300ms, ... puis 10
> secondes pour s'ex�cuter.
>
> Voici un exemple type du code en cause :
>
> 	try
> 	{
> 		parser =
> cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);
>
> 		var input = new java.io.ByteArrayInputStream(serializedContent.getBytes())
> 		var is = new Packages.org.xml.sax.InputSource(input);
>
> 		return parser.parseDocument(is);
> 	}
> 	finally
> 	{
> 		cocoon.releaseComponent(parser);
> 		parser = null;
> 	}
>
>
> Avez-vous d�j� constat� ce type de probl�me ?
> Il y a t il un moyen particulier d'utiliser cocoon.getComponent() que je n'ai
> pas correctement appliqu� ?
> D'apr�s vous le probl�me viendrait de getComponent() ou du composant lui-m�me ?
>
> Je vous remercie par avance de vos r�ponses,
>   

Je me souviens avoir parfois constaté des comportements curieux avec un
"return" dans un bloc finally.

Est-ce que la construction suivante (équivalente) donne les mêmes résultats?

  try {
    var parser = cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);
    var input = new java.io.ByteArrayInputStream(serializedContent.getBytes())
    var is = new Packages.org.xml.sax.InputSource(input);
    var result = parser.parseDocument(is);
  } finally {
    cocoon.releaseComponent(parser);
    parser = null;
  }
  return result;


Sylvain

-- 
Sylvain Wallez - http://bluxte.net


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message