view docs/xsls/directive.xsls @ 4113:a28ba1cdec27

Buffers reuse in chunked filter. There were 2 buffers allocated on each buffer chain sent through chunked filter (one buffer for chunk size, another one for trailing CRLF, about 120 bytes in total on 32-bit platforms). This resulted in large memory consumption with long-lived requests sending many buffer chains. Usual example of problematic scenario is streaming though proxy with proxy_buffering set to off. Introduced buffers reuse reduces memory consumption in the above problematic scenario. See here for initial report: http://mailman.nginx.org/pipermail/nginx/2010-April/019814.html
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 15 Sep 2011 15:25:42 +0000
parents 24f511e94057
children
line wrap: on
line source

X:stylesheet {
    
    X:template = "directive" {
        <hr/>
        <a name="{@name}"/>
        <!-- <center><h4> !{@name} </h4></center> -->
        !! "syntax";
        !! "default";
        !! "context";
        X:if "(@appeared-in)" {
            <strong>appeared in version</strong>: !{@appeared-in}
        }
        !! "para";
    }
    
    X:template = "syntax" {
        X:if "position() = 1" {
            <strong>syntax</strong>:
        } else {
            <code>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;</code>
        }
        <code> !!; </code> <br/>
    }
    
    X:template = "default" {
        <strong>default</strong>:
        X:if "count(text()) = 0" {
            <strong>none</strong>
        } else {
            <code> !!; </code>
        }
        <br/>
    }
    
    X:template = "context" {
        X:if "position() = 1" {
            <strong>context</strong>:
        }
        X:if "count(text()) = 0" {
            <strong>any</strong>
        } else {
            <code> !!; </code>
        }
        X:if "position() != last()" {
            X:text{, }
        } else {
            <br/>
        }
    }
    
}