ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Очень долгий запу ск на AMD64...



On Fri, 31 Mar 2006, Alexey N. Kovyrin wrote:

Alexey N. Kovyrin пишет:
Если кратко - много десятков тысяч....
Класс! Сократил количество инклудов для каждого сервера с 3 до 1 и время парсинга с 95 упало до 10секунд. Это уже приемлемо. Спасибо Вам больше, Игорь!

Прилагаемый патч должен, по идее, ещё уменьшить время.


Игорь Сысоев
http://sysoev.ru
--- src/core/ngx_conf_file.c    Wed Feb  1 18:41:08 2006
+++ src/core/ngx_conf_file.c    Fri Mar 31 17:25:23 2006
@@ -63,6 +63,7 @@
     char             *rv;
     ngx_fd_t          fd;
     ngx_int_t         rc;
+    ngx_buf_t        *b;
     ngx_uint_t        block;
     ngx_conf_file_t  *prev;
 
@@ -95,11 +96,23 @@
                           ngx_fd_info_n " \"%s\" failed", filename->data);
         }
 
-        cf->conf_file->buffer = ngx_create_temp_buf(cf->pool, ngx_pagesize);
-        if (cf->conf_file->buffer == NULL) {
+        b = ngx_calloc_buf(cf->pool);
+        if (b == NULL) {
             return NGX_CONF_ERROR;
         }
 
+        cf->conf_file->buffer = b;
+
+        b->start = ngx_alloc(ngx_pagesize, cf->log);
+        if (b->start == NULL) {
+            return NGX_CONF_ERROR;
+        }
+
+        b->pos = b->start;
+        b->last = b->start;
+        b->end = b->last + ngx_pagesize;
+        b->temporary = 1;
+
         cf->conf_file->file.fd = fd;
         cf->conf_file->file.name.len = filename->len;
         cf->conf_file->file.name.data = filename->data;
@@ -183,7 +196,7 @@
 
 
     if (filename) {
-        ngx_pfree(cf->pool, cf->conf_file->buffer->start);
+        ngx_free(cf->conf_file->buffer->start);
 
         cf->conf_file = prev;
 


 




Copyright © Lexa Software, 1996-2009.