SA-MP Forums Archive
Идёт большая нагрузка на сервер. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Идёт большая нагрузка на сервер. (/showthread.php?tid=293163)



Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

После того как в игре через команду я создаю 3Д текст который обновляется и обьект - все эти вещи я делаю на стримере от Инкогнито.Не пойму сервер начинает лагать,3Д текст у меня обновляется в паблике OtherTimer,,но этот таймер обновляется каждые 1000 мсек.
Что можно сделать?


Re: Идёт большая нагрузка на сервер. - Stepashka - 27.10.2011

Сделай таймер не так часто.


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Но раньше всё хорошо было.
Вот поэкспериментировал я чуть,узнал что изза обновления OtherTimer'a лагает.
А если сделать новый таймер?


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Степаш,вот сделал новый таймер вроде не лагает.
Но не идёт ли дополнительная нагрузка на сервер изза этого таймера?
add: Ух ты,таймер я ставил на 5000 мсек - всё было хорошо.
Поставил на 1000 мсек - стало не лагать,а просто загрузка дольше идёт.
Тоесть я появился и через примерно четыре сек все обьекты появляются.


Re: Идёт большая нагрузка на сервер. - DANGER1979 - 27.10.2011

мне ни когда не нравился стример от инкогнито.
Слишком он навороченный и объекты загружаются в зависимости от кучи условий по разному.
Но тоже добавляя что то, привело к кучи лагов и объекты перед самым носом стали появляться.
Я забил на этот стример.

Сделай свой стример, если очень надо и ты будет всегда знать по какой алгоритму он подгружает объекты или иконки или 3дтексты.


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Свой стример,это что-то новенькое)
Если бы умел сделал бы,а так пользуюсь этим...


Re: Идёт большая нагрузка на сервер. - Jon_De - 27.10.2011

OtherTimer это из ГФ кажется? Если да, то там слишком много говна, советую удалить все таймеры и переписать по новой, другого выхода не вижу, слишком там засрано


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Создал вот новый таймер специально для этого.
Лагает всё равно,просто в этом таймере поставил чтобы обновлялся каждые 5000 мсек,так лаги идут теперь реже потому-что обнова в 5000 мсек,а там же в 1000 мсек и были по хуже.
Вот код кстате.

PHP Code:
     for(new 0sizeof(PlantInfo); o++)
    {
        if(
PlantInfo[o][plantPlanted] == 1)
        {
              if(
PlantInfo[o][plantProg] > 100.0)
              {
                  
PlantInfo[o][plantProg] = 100.0;
                
format(stringsizeof(string),"%f% \nКуст созрел!",PlantInfo[o][plantProg]);
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring);
                
PlantInfo[o][plantPlanted] = 2;
                
SavePlants();
             }
             else
            {
                
PlantInfo[o][plantProg] += 0.1;
                
format(stringsizeof(string),"%f%",PlantInfo[o][plantProg]);
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring);
                
SavePlants();
            }
          }
    } 



Re: Идёт большая нагрузка на сервер. - White_116 - 27.10.2011

SavePlants();- возможно сохранение идёт долго а если ещё и на дини .....
Вот так попробуй
PHP Code:
   for(new 0sizeof(PlantInfo); o++) 
    { 
        if(
PlantInfo[o][plantPlanted] == 1
        { 
              if(
PlantInfo[o][plantProg] > 100.0
              { 
                  
PlantInfo[o][plantProg] = 100.0
                
format(stringsizeof(string),"%f% \nКуст созрел!",PlantInfo[o][plantProg]); 
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring); 
                
PlantInfo[o][plantPlanted] = 2
             } 
             else 
            { 
                
PlantInfo[o][plantProg] += 0.1
                
format(stringsizeof(string),"%f%",PlantInfo[o][plantProg]); 
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring); 
    
            } 
          } 
    }
    
SavePlants(); 



Re: Идёт большая нагрузка на сервер. - Mutha_X - 27.10.2011

Можно обойтись в моде вообще одним таймером(у меня 2 ради независимости одного от другого):

Берешь 1 таймер, допустим на 250 мс, делаешь колбеки: посекундные,поминутные, почасовые и тд если надо.
Второй таймер(поток) для всех стримеров.

Вообще написать свой стример легко, сложное лишь в его оптимизации.

// ps: лучше
sizeof(чо-то там) не юзать внутри цикла, а сразу 1 раз узнать размер массива и записать его в отдельную переменную.
pawn Code:
for(new o = 0,f=sizeof(PlantInfo); o != f ; o++)  
    {  
        if(PlantInfo[o][plantPlanted] == 1)  
        {  
              if(PlantInfo[o][plantProg] > 100.0)  
              {  
                  PlantInfo[o][plantProg] = 100.0;  
                format(string, sizeof(string),"%f% \nКуст созрел!",PlantInfo[o][plantProg]);  
                UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREEN, string);  
                PlantInfo[o][plantPlanted] = 2;  

             }  
             else  
            {  
                PlantInfo[o][plantProg] += 0.1;  
                format(string, sizeof(string),"%f%",PlantInfo[o][plantProg]);  
                UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREEN, string);  
     
            }  
          }  
    }
    SavePlants();



Re: Идёт большая нагрузка на сервер. - White_116 - 27.10.2011

Quote:

Вообще написать свой стример легко, сложное лишь в его оптимизации.

Есть разные методы и в каждой из них есть гвоздь!


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Quote:
Originally Posted by White_116
View Post
SavePlants();- возможно сохранение идёт долго а если ещё и на дини .....
Вот так попробуй
PHP Code:
   for(new 0sizeof(PlantInfo); o++) 
    { 
        if(
PlantInfo[o][plantPlanted] == 1
        { 
              if(
PlantInfo[o][plantProg] > 100.0
              { 
                  
PlantInfo[o][plantProg] = 100.0
                
format(stringsizeof(string),"%f% \nКуст созрел!",PlantInfo[o][plantProg]); 
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring); 
                
PlantInfo[o][plantPlanted] = 2
             } 
             else 
            { 
                
PlantInfo[o][plantProg] += 0.1
                
format(stringsizeof(string),"%f%",PlantInfo[o][plantProg]); 
                
UpdateDynamic3DTextLabelText(PLANT[o], COLOR_GREENstring); 
    
            } 
          } 
    }
    
SavePlants(); 
Вроде кстате не лагает,спасибо)
Сейчас ещё потестирую.


Re: Идёт большая нагрузка на сервер. - valych - 27.10.2011

Dima_Tkach, я полагаю, что нагрузка идет из-за постоянного вызова паблика SavePlants(); и видимо он делает какое-то сохранение)
Вообщем можешь сделать как написано выше, или не делай вызов SavePlants() по таймеру, а только при каких-то изменений данных, т.е. когда команду используешь и когда происходит изменение параметра, вот тогда и вызывай этот паблик)


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Сейчас попробую твою версию)
Кстате,ту потестировал,что писали выше,ничего не изменилось.


Re: Идёт большая нагрузка на сервер. - valych - 27.10.2011

хмм... ну должно хотяб на немного уменьшиться. А мб проблема не из-за этого?


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Хм,а изза чего?
Сейчас вроде всё хорошо.
Продолжаю тестить.


Re: Идёт большая нагрузка на сервер. - Dima_Tkach - 27.10.2011

Это решили вроде)
Всем спасибо за ответы.

Тема закрыта!