Re: speeding up svg serialization?
Hi Joerg, From: Joerg Heinicke [EMAIL PROTECTED] Hello Leona, we use SVG generated PNGs at www.ekommunen.de too and the serialization is really fast except the very first request on a SVG serializer. I guess this is because of the first instantiation of Batik, but maybe somebody can say something more about this. Is it really a problem if the very first user accessing the very first time the site has to wait some seconds more? It wouldn't be so bad if it was just the first user, but in our architecture, every user is running Tomcat and Cocoon, thus every user is also a first user! I'll have to do some research on Batik, but hints would be welcome. Maybe therefore you can optimize your sitemap or the XSLT. For example you are passing the request parameters and some other parameters to the stylesheets, which prevents effective caching. Stylesheets are cached in combination with passed parameters. We changed this by storing such parameters in an extra XML, which is aggregated in the sitemap. So there is really only one instance of the stylesheet in the cache. Are you talking about storing the parameters in an XML file? What I think I really need is the concept of a session object that can pass parameters between pages. Furthermore I see add_image img_file={concat('http://localhost:8080/GS/name.jpg?display=', ./Role)}/ in the stylesheets, which can be simplified to add_image img_file=http://localhost:8080/GS/name.jpg?display={Role}/ This was a beginners mistake which has been fixed. And the third point: You have a template creating an add_image/ element and one matching one them. Hmm, I can only guess, but are you storing add_image/ in a Result Tree Fragment, which you convert back to a node set and apply a template to it? If it is so, maybe there are better processings possible. add_image/ generates the HTML output which goes to the serializer. In general the Cocoon/XML/Java parts perform well. I am new to Cocoon, so, of course, there is room for improvement, but it really is the svg processing that slows it down the first time. Regards, Joerg Thanks for your help, Leona lrs wrote: Hi All, I have an application that is generating some labels for a table using svg. All it does is generate some text and rotate it 180. This is the sitemap fragement that applies to this function. map:match pattern=name.jpg map:generate src=gs.xml/ map:transform src=page2svg.xsl map:parameter name=use-request-parameters value=true/ map:parameter name=pagename value=name.jpg/ map:parameter name=display value={display}/ /map:transform map:serialize type=svg2jpeg/ /map:match which is called from this piece of XSL. xsl:template match=Role name=Role ... add_image img_file={concat('http://localhost:8080/GS/name.jpg?display=', ./Role)}/ ... /xsl:template and add_image is a simple template: xsl:template name=add_image match=add_image xsl:element name=img xsl:attribute name=src xsl:value-of select=@img_file/ /xsl:attribute /xsl:element /xsl:template The problem is that the rendering of the svg is sooo slow. It takes up to 15 seconds to generate as few a 8 labels, whereas the table itself (plain HTML) can have hundreds of cells, yet render in as little as 2 seconds. Subsequent views of the page are faster because the images are cached, but I would like to get better performance on the first viewing. Does anyone know if this can be optimized, either in the configuration files, the sitemap, the XSL or some other method? Any help would be greatly appreciated. Thanks very much, Leona Slepetis - Please check that your question has not already been answered in the FAQ before posting. http://xml.apache.org/cocoon/faq/index.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - Please check that your question has not already been answered in the FAQ before posting. http://xml.apache.org/cocoon/faq/index.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: speeding up svg serialization?
HI Leona, lrs wrote: Hi Joerg, From: Joerg Heinicke [EMAIL PROTECTED] Hello Leona, we use SVG generated PNGs at www.ekommunen.de too and the serialization is really fast except the very first request on a SVG serializer. I guess this is because of the first instantiation of Batik, but maybe somebody can say something more about this. Is it really a problem if the very first user accessing the very first time the site has to wait some seconds more? It wouldn't be so bad if it was just the first user, but in our architecture, every user is running Tomcat and Cocoon, thus every user is also a first user! I'll have to do some research on Batik, but hints would be welcome. Then it's a bit more important of course, but I can't help anymore. There *must* be some specialists on batik on this list. Maybe therefore you can optimize your sitemap or the XSLT. For example you are passing the request parameters and some other parameters to the stylesheets, which prevents effective caching. Stylesheets are cached in combination with passed parameters. We changed this by storing such parameters in an extra XML, which is aggregated in the sitemap. So there is really only one instance of the stylesheet in the cache. Are you talking about storing the parameters in an XML file? What I think I really need is the concept of a session object that can pass parameters between pages. Yes. We have a huge layout.xsl, which really must efficiently be cached. Therefore the XML it is transforming is an aggregation of the XML file itself and a little XML file, which is created via XSP and contains some parameterization. But if the latter accessing of an SVG generated image is not that problem, maybe it's not that important. And the third point: You have a template creating an add_image/ element and one matching one them. Hmm, I can only guess, but are you storing add_image/ in a Result Tree Fragment, which you convert back to a node set and apply a template to it? If it is so, maybe there are better processings possible. add_image/ generates the HTML output which goes to the serializer. In general the Cocoon/XML/Java parts perform well. I am new to Cocoon, so, of course, there is room for improvement, but it really is the svg processing that slows it down the first time. Hmm, I still don't exactly understand, in which way you are doing it, but the same like above: maybe not so important. Sorry, that I can't help you more. Regards, Joerg - Please check that your question has not already been answered in the FAQ before posting. http://xml.apache.org/cocoon/faq/index.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: speeding up svg serialization?
Hello Leona, we use SVG generated PNGs at www.ekommunen.de too and the serialization is really fast except the very first request on a SVG serializer. I guess this is because of the first instantiation of Batik, but maybe somebody can say something more about this. Is it really a problem if the very first user accessing the very first time the site has to wait some seconds more? Maybe therefore you can optimize your sitemap or the XSLT. For example you are passing the request parameters and some other parameters to the stylesheets, which prevents effective caching. Stylesheets are cached in combination with passed parameters. We changed this by storing such parameters in an extra XML, which is aggregated in the sitemap. So there is really only one instance of the stylesheet in the cache. Furthermore I see add_image img_file={concat('http://localhost:8080/GS/name.jpg?display=', ./Role)}/ in the stylesheets, which can be simplified to add_image img_file=http://localhost:8080/GS/name.jpg?display={Role}/ And the third point: You have a template creating an add_image/ element and one matching one them. Hmm, I can only guess, but are you storing add_image/ in a Result Tree Fragment, which you convert back to a node set and apply a template to it? If it is so, maybe there are better processings possible. Regards, Joerg lrs wrote: Hi All, I have an application that is generating some labels for a table using svg. All it does is generate some text and rotate it 180. This is the sitemap fragement that applies to this function. map:match pattern=name.jpg map:generate src=gs.xml/ map:transform src=page2svg.xsl map:parameter name=use-request-parameters value=true/ map:parameter name=pagename value=name.jpg/ map:parameter name=display value={display}/ /map:transform map:serialize type=svg2jpeg/ /map:match which is called from this piece of XSL. xsl:template match=Role name=Role ... add_image img_file={concat('http://localhost:8080/GS/name.jpg?display=', ./Role)}/ ... /xsl:template and add_image is a simple template: xsl:template name=add_image match=add_image xsl:element name=img xsl:attribute name=src xsl:value-of select=@img_file/ /xsl:attribute /xsl:element /xsl:template The problem is that the rendering of the svg is sooo slow. It takes up to 15 seconds to generate as few a 8 labels, whereas the table itself (plain HTML) can have hundreds of cells, yet render in as little as 2 seconds. Subsequent views of the page are faster because the images are cached, but I would like to get better performance on the first viewing. Does anyone know if this can be optimized, either in the configuration files, the sitemap, the XSL or some other method? Any help would be greatly appreciated. Thanks very much, Leona Slepetis - Please check that your question has not already been answered in the FAQ before posting. http://xml.apache.org/cocoon/faq/index.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]