Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для X!X
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±

    Выдержит ли хостинг?

    Уважаемые, подскажите, на хорошем хостинге выдержит мод онлайн 1000 с индвидуальными таймерами в 250 мс. Это сделано для точности таймеров.
    Не станет ли плохо серверу и не начнутся лаги при онлайне в 1000?
    Заранее спасибо за ответ

  2. #2
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от X!X Посмотреть сообщение
    Уважаемые, подскажите, на хорошем хостинге выдержит мод онлайн 1000 с индвидуальными таймерами в 250 мс. Это сделано для точности таймеров.
    Не станет ли плохо серверу и не начнутся лаги при онлайне в 1000?
    Заранее спасибо за ответ
    Все зависит от того, какой код содержится в функции таймера. Сами же таймеры создают минимальную нагрузку (или вообще не создают).
    Ну, и насчет фикса - давно есть плагины которые это дело реализуют и не нужно ничего мудрить на павн ;)
    0x

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так же стоит понимать, что далеко не везде нужны точные таймеры, где вы хотите их впихнуть. В большинстве случаев хватит обычной сверки gettime() для точности
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для X!X
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так же стоит понимать, что далеко не везде нужны точные таймеры, где вы хотите их впихнуть. В большинстве случаев хватит обычной сверки gettime() для точности
    У меня для этого и таймер в 250 секунд, чтобы точно была с проверкой gettime() ибо в 1 секунду отстает на 2 секунды бывает таймер, а с 250 такого нет. И еще, хотел спросить, слышал, что если ид таймера запущенного на сервере больше 2.500.000, то сервер выключится - итс правда?

  5. #5
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Цитата Сообщение от X!X Посмотреть сообщение
    У меня для этого и таймер в 250 секунд, чтобы точно была с проверкой gettime() ибо в 1 секунду отстает на 2 секунды бывает таймер, а с 250 такого нет. И еще, хотел спросить, слышал, что если ид таймера запущенного на сервере больше 2.500.000, то сервер выключится - итс правда?
    Не думаю что ты такого числа достигнешь. А насчет правды - создай цикл и проверь :)
    0x

  6. Пользователь сказал cпасибо:
    X!X (13.06.2018)
  7. #6
    Аватар для X!X
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±
    Цитата Сообщение от Batya_Montes Посмотреть сообщение
    Не думаю что ты такого числа достигнешь. А насчет правды - создай цикл и проверь :)
    Точно, спасибо, все отлично!

  8. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от X!X Посмотреть сообщение
    У меня для этого и таймер в 250 секунд, чтобы точно была с проверкой gettime() ибо в 1 секунду отстает на 2 секунды бывает таймер, а с 250 такого нет
    Если таймеры отстают, значит есть код, который обрабатывается слишком долго, создавая задержки. И делая таймер на 250 мс, ты не исправляешь проблему, а лишь усугубляешь, создавая большую нагрузку. Если хочешь сделать правильно - займись оптимизацией.
    А лучше вообще понять: так ли важно, что таймер будет отставать на пару секунд. На деле игрок этого и не заметит.

    Цитата Сообщение от X!X Посмотреть сообщение
    И еще, хотел спросить, слышал, что если ид таймера запущенного на сервере больше 2.500.000, то сервер выключится - итс правда?
      Открыть/закрыть
    PHP код:
    main()
    {
        new 
    timer_id;
        for(new 
    icellmax*2i++)
        {
            
    timer_id SetTimer("TestFuncName"10000false);
            
    printf("TimerID: %d"timer_id);
            
    KillTimer(timer_id);
        }
        
    timer_id SetTimer("TestFuncName"10000false);
        
    printf("Конец: %d"timer_id);
        
    KillTimer(timer_id);

    Проверяй
    Последний раз редактировалось DeimoS; 14.06.2018 в 11:06.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #8
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    main()
    {
        new 
    timer_id;
        for(new 
    icellmax*2i++)
        {
            
    timer_id SetTimer("TestFuncName"10000false);
            
    printf("TimerID: %d"timer_id);
            
    KillTimer(timer_id);
        }
        
    timer_id SetTimer("TestFuncName"10000false);
        
    printf("Конец: %d"timer_id);
        
    KillTimer(timer_id);

    Проверяй
    Тело цикла не выполнится ни разу.

    UPD: Немного передалал код, но выполнять всё же не советую: сервер отжирает всю доступную память, что приводит к зависанию системы.
    1. main()
    2. {
    3. new timer_id;
    4. for(new i = 0; i < 2; ++i)
    5. {
    6. for (new j = 0; j >= 0; ++j) // Пока не произойдёт переполнение, т.е. до cellmax включительно
    7. {
    8. timer_id = SetTimer("TestFuncName", 10000, false);
    9. if (timer_id % 1_000_000 == 0) // Выводить только каждый миллионный ID, чтобы
    10. printf("TimerID: %d", timer_id); // вывод в консоль/лог не тормозил всё остальное
    11. KillTimer(timer_id);
    12. }
    13. }
    14. timer_id = SetTimer("TestFuncName", 10000, false);
    15. printf("Конец: %d", timer_id);
    16. KillTimer(timer_id);
    17. }
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  10. 2 пользователя(ей) сказали cпасибо:
    DeimoS (14.06.2018) X!X (13.06.2018)
  11. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Тело цикла не выполнится ни разу.

    UPD: Немного передалал код
    1. main()
    2. {
    3. new timer_id;
    4. for(new i = 0; i < 2; ++i)
    5. {
    6. for (new j = 0; j >= 0; ++j) // Пока не произойдёт переполнение, т.е. до cellmax включительно
    7. {
    8. timer_id = SetTimer("TestFuncName", 10000, false);
    9. if (timer_id % 1_000_000 == 0) // Выводить только каждый миллионный ID, чтобы
    10. printf("TimerID: %d", timer_id); // вывод в консоль/лог не тормозил всё остальное
    11. KillTimer(timer_id);
    12. }
    13. }
    14. timer_id = SetTimer("TestFuncName", 10000, false);
    15. printf("Конец: %d", timer_id);
    16. KillTimer(timer_id);
    17. }
    Изначально код был такой
      Открыть/закрыть

    Это уже когда на форум скинул, решил сначала более наглядный вывод в консоль сделать, убрав условие для printf, а потом почему-то сделал умножение для cellmax, не подумав, что там получится отрицательное число и ничего работать не будет.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    но выполнять всё же не советую: сервер отжирает всю доступную память, что приводит к зависанию системы.
    Если её больше 4-х гигов, то он ведь не всю отожрёт, а как раз те самые 4 гига и крашнет, не? Сервер ведь 32-битный и в больше 4-х гигов оперативки не может.

    В любом случае, судя по активности автора, ответ на вопросы получен и тему можно закрывать
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  12. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Изначально код был такой
      Открыть/закрыть
    Вот только для выхода из цикла нужно число больше cellmax, а такого числа в Pawn нет и цикл будет выполняться вечно - вернее, выполнялся бы, если б не OOM (out of memory).

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если её больше 4-х гигов, то он ведь не всю отожрёт, а как раз те самые 4 гига и крашнет, не? Сервер ведь 32-битный и в больше 4-х гигов оперативки не может.
    Не у всех пользователей форума 64-разрядная ОС.

    На этом, пожалуй, можно переместить тему в архив.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  13. Пользователь сказал cпасибо:
    DeimoS (15.06.2018)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •