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

Igor Sysoev is at rambler-co.ru
Fri Mar 31 17:28:43 MSD 2006


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

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

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


Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
--- 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;
 


More information about the nginx-ru mailing list