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;