Changeset 519

Show
Ignore:
Timestamp:
12/13/06 21:11:47 (2 years ago)
Author:
alo
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • cherokee/branches/0.5/ChangeLog

    r515 r519  
     12006-12-12  A.D.F  <adefacc@tin.it> 
     2 
     3        * cherokee/buffer.c:  
     4        - fixes to cherokee_buffer_ensure_size(); 
     5        - add 1 to a few cherokee_buffer_ensure_size() calls, 
     6          in order to always reserve space 
     7          for buffer / string terminator '\0'. 
     8 
     9        * cherokee/handler_file.c:  
     10        - add a cherokee_buffer_ensure_size(buffer, 288) 
     11          to cherokee_handler_file_add_headers(), 
     12          in order to avoid too many reallocations 
     13          (now none for 99.99% of responses); 
     14 
     15          this modification speed up Cherokee by over 1.5% 
     16          when serving small files ( < 2KB) 
     17          with 200 or 304 responses.     
     18 
     19        * cherokee/handler_error.c: 
     20        - add two calls to cherokee_buffer_ensure_size() 
     21          in order to avoid too many reallocations; 
     22 
     23          this modification speed up Cherokee by over 4% 
     24          when answering with 404 error message 
     25          (3020 -> 3150 responses / sec.).       
     26         
    1272006-12-11  A.D.F  <adefacc@tin.it> 
    228 
  • cherokee/branches/0.5/cherokee/buffer.c

    r402 r519  
    293293        /* Maybe it doesn't need it 
    294294         */ 
    295         if (size < buf->len)  
     295        if (size <= (size_t) buf->size)  
    296296                return ret_ok; 
    297297 
     
    300300        if (buf->buf == NULL) { 
    301301                buf->buf = (char *) malloc (size); 
    302                 if (unlikely (buf->buf == NULL)) return ret_nomem; 
     302                if (unlikely (buf->buf == NULL)) 
     303                        return ret_nomem; 
    303304                buf->size = size; 
    304305                return ret_ok; 
     
    308309         */ 
    309310        buf->buf = (char *) realloc(buf->buf, size); 
    310         if (unlikely (buf->buf == NULL)) return ret_nomem; 
     311        if (unlikely (buf->buf == NULL)) 
     312                return ret_nomem; 
    311313        buf->size = size; 
    312314            
     
    555557 
    556558        initial_size = buf->len; 
    557         cherokee_buffer_ensure_size (buf, buf->len * num); 
     559        cherokee_buffer_ensure_size (buf, buf->len * num + 1); 
    558560 
    559561        for (i=0; i<num; i++) { 
     
    628630        switch (ver) { 
    629631        case ver_full_html: 
    630                 cherokee_buffer_ensure_size (buf, buf->len + 29 + sizeof(PACKAGE_VERSION) + 6 + port_len + 10); 
     632                cherokee_buffer_ensure_size (buf, buf->len + 29 + sizeof(PACKAGE_VERSION) + 6 + port_len + 10 + 1); 
    631633 
    632634                cherokee_buffer_add_str (buf,  
     
    637639 
    638640        case ver_port_html: 
    639                 cherokee_buffer_ensure_size (buf, buf->len + 34 + port_len + 10); 
     641                cherokee_buffer_ensure_size (buf, buf->len + 34 + port_len + 10 + 1); 
    640642 
    641643                cherokee_buffer_add_str (buf, "<address>Cherokee web server Port "); 
     
    752754        /* Get memory 
    753755         */ 
    754         ret = cherokee_buffer_ensure_size (&new_buf, (buf->len+4)*4/3); 
     756        ret = cherokee_buffer_ensure_size (&new_buf, (buf->len+4)*4/3 + 1); 
    755757        if (unlikely (ret != ret_ok)) return ret; 
    756758 
     
    947949        cherokee_buffer_t encoded = CHEROKEE_BUF_INIT; 
    948950 
    949         cherokee_buffer_ensure_size (&encoded, (SHA1_DIGEST_SIZE *2) + 1);     
     951        cherokee_buffer_ensure_size (&encoded, (SHA1_DIGEST_SIZE * 2) + 1);    
    950952 
    951953        cherokee_buffer_encode_sha1 (buf, &encoded); 
  • cherokee/branches/0.5/cherokee/handler_error.c

    r451 r519  
    7373        cuint_t            port; 
    7474        cherokee_buffer_t *escaped = NULL; 
     75 
     76        /* Ensure minimum size to avoid too many reallocations. 
     77         */ 
     78        cherokee_buffer_ensure_size(buffer, 768); 
    7579 
    7680        cherokee_buffer_add_str (buffer, "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">" CRLF); 
     
    195199{ 
    196200        cherokee_connection_t *conn = HANDLER_CONN(hdl); 
     201 
     202        /* Ensure minimum size to avoid too many reallocations. 
     203         */ 
     204        cherokee_buffer_ensure_size(buffer, 384); 
    197205 
    198206        /* It has special headers on protocol upgrading  
  • cherokee/branches/0.5/cherokee/handler_file.c

    r422 r519  
    507507        cherokee_connection_t *conn         = HANDLER_CONN(fhdl); 
    508508 
     509        /* Ensure minimum buffer size to avoid or 
     510         * at least reduce the number of reallocations. 
     511         */ 
     512        cherokee_buffer_ensure_size(buffer, 288); 
     513 
    509514        /* Etag 
    510515         */