Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Ускорение работы IkonBoard V. 2. Часть I.

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

articlebot



Administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Администраторам конференций на базе движка IkonBoard V. 2 хорошо известна невысокая скорость ее работы. Это особенно хорошо заметно на перегруженных бесплатных хостингах, а также при высокой посещаемости конференции.
В данной статье мы кратко рассмотрим некоторые приемы, которые позволят увеличить скорость работы IkonBoard V.2, одновременно снизив нагрузку на сервер. В последующих статьях мы подробней остановимся на отдельных приемах.
 
Читать

Всего записей: 366 | Зарегистр. 25-05-2001 | Отправлено: 00:43 02-10-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На руборде убрано кол-во просмотров. Интересно, оно только из list.cgi убрано или вообще перезапись pl при просмотре отсутствует? Во втором случае это, наверное, и нагрузку на сервер уменьшает, и главное, повышает устойчивость к обнулениям.

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 00:55 11-10-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
 главное, повышает устойчивость к обнулениям.

 
Ты думаешь?
 
Что касается ру-борда, давай его не будем обсуждать, тут все не так на самом деле.
 

Цитата:
 Во втором случае это, наверное, и нагрузку на сервер уменьшает

 
В общем-то - да. И правда надо будет убрать это у себя. Спасибо за идею

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 00:24 13-10-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx

Цитата:
 
Цитата:
Цитата: главное, повышает устойчивость к обнулениям.

Ты думаешь?

А то! У кого есть проблема с обнулениями, постоянно сталкиваются с массовым  обнулением pl-ок при живых thd.
 
Мне бы тоже было полезно убрать просмотры, но вообще, юзер не любит упрощений, юзер любит все новые фичи, чем больше тем лучше Одно дело когда с самого начала конфа не кажет просмотры, а другое убирать.. Крику будет

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 00:39 13-10-2003 | Исправлено: Marilda, 00:43 13-10-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
 У кого есть проблема с обнулениями, постоянно сталкиваются с массовым  обнулением pl-ок при живых thd.  

 
Это то я знаю. Просто ты думаешь, что запись при просмотре поможет от обнуления?
 

Цитата:
юзер не любит упрощений, юзер любит все новые фичи,

 
Ничего. Скорость он тоже любит

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 01:48 13-10-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
 

Цитата:
Просто ты думаешь, что запись при просмотре поможет от обнуления?

 
Если исходить из этого (см.ниже) объяснения механизма обнуления - а другого мы не видели - то думаю, поможет. Не перезаписываемые же файлы не обнуляются, прецедентов по кр.мере не было.
 

Цитата:
файл открывается на перезапись, тут хлоп и не хватает ресурсов, процесс киляется - все, файл пустой теперь

(цитата отсюда: http://forum.ru-board.com/topic.cgi?forum=21&topic=1389&start=20#15 )
 
Но только если не просто переменную удалить, а не открывать при просмотре pl и list.cgi на перезапись, окрывать только при постинге (не знаю, реально ли и легко ли это сделать).

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 12:52 13-10-2003 | Исправлено: Marilda, 14:04 13-10-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 
Количество просмотров берется из файла list.cgi
 
Смотрим: topic.cgi  
 

Код:
 
   $filetoopen = "$ikondir" . "forum$inforum/list.cgi";
    $filetoopen = &stripMETA($filetoopen);
    if (-e $filetoopen) {
        open(FILE, $filetoopen) or &error("$ibtxt{'3001'}&$ibtxt{'3002'}$inforum/list.cgi");
          flock (FILE, 1);
        @allthreads = <FILE>;
        close(FILE);
        $totalthreadcount = @allthreads;
        $count = 0;
        foreach $line (@allthreads) { #start foreach @threads
            ($tempno, $trash) = split(/\|/, $line);
            chomp $line;
            push (@numbercounter, $tempno);
            if ($intopic eq $tempno) {
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$line);
               $threadviews++;
 

 
И потом пишется в файл *.pl:
 
В общем, смотрю я на этот кусок кода и пока не понимаю, все ли это надо:
 
 

Код:
 
    $filetoopen = "$ikondir" . "forum$inforum/list.cgi";
    $filetoopen = &stripMETA($filetoopen);
    if (-e $filetoopen) {
        open(FILE, $filetoopen) or &error("$ibtxt{'3001'}&$ibtxt{'3002'}$inforum/list.cgi");
          flock (FILE, 1);
        @allthreads = <FILE>;
        close(FILE);
        $totalthreadcount = @allthreads;
        $count = 0;
        foreach $line (@allthreads) { #start foreach @threads
            ($tempno, $trash) = split(/\|/, $line);
            chomp $line;
            push (@numbercounter, $tempno);
            if ($intopic eq $tempno) {
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$line);
                $threadviews++;  
                $keepcounter = $count;
                $linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";
                chomp $linetokeep;
                $processed_data .= "$linetokeep\n";
                }
                else { $processed_data .= "$line\n"; }
            $count++;
            }
        if (($processed_data eq "") || ($processed_data !~ m!\|!)) { &error("Missing Data&Data as corrupted on the server. Please go back and try again"); }
        open(FILE, ">$filetoopen");
          flock(FILE, 2);
        print FILE $processed_data;
        close(FILE);
        undef $processed_data;
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open(MSG, ">$file");
          flock(MSG, 2);
        print MSG $linetokeep;
        close(MSG);
        }    
 

 


Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:48 14-10-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
 
Может, вот это убрать?  

Код:
my $file = "$ikondir" . "forum$inforum/$intopic.pl";  
        open(MSG, ">$file");  
          flock(MSG, 2);  
        print MSG $linetokeep;  
        close(MSG);  

 
Остальное, даже если и что-то не нужно, борозды не портит.
 
 
 
         

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 14:04 16-10-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Может, вот это убрать?  

 
Дак там перезапись в файл вообще, я не уверена, что не надо его перезаписывать. Пока не могу ответить.
 
Попробуй на локалхосте....

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 15:52 16-10-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
 
Перезаписывается  

Код:
$linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";  
                 

а кроме $threadviews ни одна из переменных этой строки в приведенном тобой куске не пересчитывается. Да и не должна пересчитываться, это же всего лишь вход в топик. Все что нужно перезаписать, перезапишет post.cgi.
 
Давай оставим в теории или отложим на потом. Вдруг пригодится?

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 19:34 16-10-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 
В общем, безболезненно закоментила следующий код в topic.cgi
Результат - не считается кол-во просмотров (ссответственно убран вывод в  forums.cgi). Длительность теста - месяц.
 

Код:
 
if ($intopic eq $tempno) {
($topicid,$topictitle,$topicdescription,$threadstate,$threadposts,$threadviews,$startedby,$startedpostdate,$lastposter,$lastpostdate,$sticky) = split(/\|/,$line);
#               $threadviews++;  
               $keepcounter = $count;
#               $linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";
 
 #                chomp $linetokeep;
 #               $processed_data .= "$linetokeep\n";
                }
 
#               else {  
#            $processed_data .= "$line\n";  
#}
            $count++;
            }
 
 
#        if (($processed_data eq "") || ($processed_data !~ m!\|!)) { &error("Ошибка&Видимо, обнулились файлы топиков, обратитесь к модераторам или администратору"); }
=begin
        open(FILE, ">$filetoopen");
        flock(FILE, 2);
        print FILE $processed_data;
        close(FILE);
        undef $processed_data;
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open(MSG, ">$file");
        flock(MSG, 2);
        print MSG $linetokeep;
        close(MSG);
=cut  
 

 
То есть из всего осталось только:
 

Код:
 
if ($intopic eq $tempno) {
($topicid,$topictitle,$topicdescription,$threadstate,$threadposts,$threadviews,$startedby,$startedpostdate,$lastposter,$lastpostdate,$sticky) = split(/\|/,$line);
 
            $count++;
            }
 

 
 
Хотя зачем этот счетчик, не знаю.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 18:58 09-11-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Спасибо большое. Ты только topic.cgi правила? Я тогда попробовала убрать  

Код:
my $file = "$ikondir" . "forum$inforum/$intopic.pl";  
        open(MSG, ">$file");  
          flock(MSG, 2);  
        print MSG $linetokeep;  
        close(MSG);    

но число просмотров все равно считалось. Вывод в forums.cgi не трогала. А после постинга число постов уменьшалось.  
Чтобы понятнее, скажем, есть тема, 1 ответ, 10 просмотров. Удаляю кусок ^^. Открываю топик. Просмотров кажет уже 11. Открываю еще раз - просмотров 12, и т.д. Постчу. Ответов 2, просмотров 10.  
Короче, не достаточно этот кусок убирать, там еще где-то просмотры считаются, в forums.cgi или в ikon.lib.
 
Жаль я не посмотрела, при этих просмотрах обновлялось время изменения pl или нет (из-за него и весь сыр-бор), пришла такая идея когда уже все стерла.
 
lynx, еще вопрос. На сколько %% на твой взгляд уменьшается вес страницы конфы при переводе на ccs?

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 12:40 10-11-2003 | Исправлено: Marilda, 12:44 10-11-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Marilda
 

Цитата:
Ты только topic.cgi правила?  

 
Да и тестила - просмотры не пишутся. У тебя пишутся?
 
Вот они как пишутся:  

Код:
$threadviews++;  
 

ищи, где у тебя еще такой код. ikon.lib посмотри.
 
Конечно, я еще правила forums.cgi, но только вывод количества просмотров, больше ничего.
 

Цитата:
На сколько %% на твой взгляд уменьшается вес страницы конфы при переводе на ccs?  

 
Не знаю, но прирост в скорости _очень_ существенный. По весу страницы может и не так существенно. Ты траф экономишь? Ну копейки. Хотя при большой посещаемости заметные копейки. А вот нагрузка на сервак и скорость - очень изменятся.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 18:57 12-11-2003
Marilda

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx

Цитата:
Да и тестила - просмотры не пишутся. У тебя пишутся?  

Да, писались. Но я, кажется, уже поняла в чем дело.  
Спасибо за готовое решение.  
 

Цитата:
Ты траф экономишь? Ну копейки. Хотя при большой посещаемости заметные копейки. А вот нагрузка на сервак и скорость - очень изменятся

Я не. Юзер пишет, жрете много. У кого-то GPRS, у кого-то выделенка.

Всего записей: 381 | Зарегистр. 24-10-2002 | Отправлено: 01:33 13-11-2003
mjorion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё сделал. На главной форума теперь нет вывода об просмотрах, и подсчет тоже вырублен. Но как это можно проверить?
И появилась после этого проблема - нет названия топика в форуме (раздел-форум-топик)  
Я удалил параметр $forumgraphic, может из-за этого? :_(

Всего записей: 123 | Зарегистр. 07-07-2004 | Отправлено: 10:47 20-10-2004 | Исправлено: mjorion, 11:06 20-10-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mjorion

Цитата:
 На главной форума теперь нет вывода об просмотрах, и подсчет тоже вырублен. Но как это можно проверить?  

 
Если ты убрал запись в файл числа просмотров, то уже никак не проверишь. По счетчикам только (хот.лог там, кто еще у тебя стоит).
 

Цитата:
 и подсчет тоже вырублен

 
Подсчет чего?
 
Ну, в общем, ты понял. Если ты убрал запись числа просмотров в файл, то все, не посмотришь.
 
Тут приходится балансировать между функциональностью и скоростью (с нагрузкой на сервер вместе).
 

Цитата:
И появилась после этого проблема - нет названия топика в форуме (раздел-форум-топик)    
Я удалил параметр $forumgraphic, может из-за этого? :_(

 
Нет, не из-за этого.
 
Так, еще раз. Где нет названия чего?
На странице topic.cgi ? или на странице forums.cgi?
 
Сделай скрин, плиз, проблемного места и дай код (отдельным txt файлом) проблемного файла + файла ikon.lib.
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 20:29 20-10-2004
mjorion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx, я не про это:

Цитата:
Если ты убрал запись в файл числа просмотров, то уже никак не проверишь. По счетчикам только (хот.лог там, кто еще у тебя стоит).

 
Я просто хотел бы проверить не ведется ли где-нибудь в скрипте подсчет просмотров, а я не вкурсе, так как вывод в forums.cgi вырублен
 
http://www.spbgavm.h12.ru/ikon.txt
http://www.spbgavm.h12.ru/topic.txt
 

Всего записей: 123 | Зарегистр. 07-07-2004 | Отправлено: 10:00 21-10-2004 | Исправлено: mjorion, 10:09 21-10-2004
mjorion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никак не могу выложить скрин - с моего h12.ru нельзя почему-то этого сделать
Посмотри пожалуйста тут

Всего записей: 123 | Зарегистр. 07-07-2004 | Отправлено: 13:09 25-10-2004
mjorion



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Неужели никто не поможет? Так оставить форум совсем некрасиво...
Есть:
                 
Код:
название раздела
                           |__
                            название форума
                                      |__
                                         название темы
 
 

Так вот. "навание темы" нету! Вместо него пустое место!!!
                           

Всего записей: 123 | Зарегистр. 07-07-2004 | Отправлено: 23:56 26-10-2004 | Исправлено: mjorion, 00:03 27-10-2004
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mjorion Обрати внимание на адресс своей ссылки в браузере : http://spbgavm.h12.ru/cgi-bin/ikonboard//topic.cgi?forum=6&topic=19
Видишь два слеша? Вот это вероятно одна из проблем: в data/boardinfo.cgi подправь пути...

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 02:14 27-10-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Ускорение работы IkonBoard V. 2. Часть I.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru