Salut,

Quelques precisions sur la degradation des perfs de getComponet avec DOM :

J'ai dit que l'instruction :
cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);

mettait de plus en plus de temps a s'executer a chaque appel, puis ensuite j'ai
dit qu'en fait ce n'etait pas vrai.

En realite les 2 cas sont vrais, mais cela depend de l'usage qui est fait du
parser :

Avec ce code, en recuperant les donnees depuis une source externe, il y a
degradation des performances :

        try {

                var parser =
cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);

                var input = source.getInputStream();

                var is = new Packages.org.xml.sax.InputSource(input);

                is.setSystemId(source.getURI());

                var result = parser.parseDocument(is);

        } finally {
                cocoon.releaseComponent(parser);
                parser = null;
                input  = null;
                is     = null;
        }

        return result;

Il y a bien une degradation a chaque appel.

A NOTER AUSSI QUE l'instruction :
var is = new Packages.org.xml.sax.InputSource(input);
se degrade elle aussi un peu plus a chaque appel et encore plus vite que
getComponent.


Mais, avec ce code, en recuperant les donnees depuis une chaine de caracteres il
n'y a pas de degradation de performances d'un appel a l'autre :

    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;


Ce qui est tres etrange c'est que dans les 2 cas l'instruction :
var parser =
cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);

un coup se degrade, un coup ne se degrade pas, alors "qu'elle ne sait pas" si je
vais lire mon flux depuis une source externe ou depuis une chaine de
caracteres...

C'est bien bizarre...

Gael, qui aime les mysteres...


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Répondre à