Вопрос

Добрый вечер.

 

Как можно определить, что в сборке занижает фпс? Каие скрипты, например. Бывает такое, что в определенное время фпс низкий, а чуть позже высокий, онлайн человек 12-18.

 

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 ответов на этот вопрос

Самое простое отключить все скрипты и поочередно подключать их, наблюдая за просадками. Ну или с нуля собрать свою сборку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


Факторов очень много, нужно больше информации, в плоть какие скрипты, люди чужие играют или свои, логи приложи, что бы хоть малейшее представление иметь что тебе советовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Факторов очень много, нужно больше информации, в плоть какие скрипты, люди чужие играют или свои, логи приложи, что бы хоть малейшее представление иметь что тебе советовать

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Тем более, нужно больше информации

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Напомните, пжл, команду, чтобы узнать серверный фпс?

#monitor

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1.  Смотри циклы 

 

while(true) do {...};
 

2. Очистка трупов (зомби,игроков,взорванной техники...) - чем чаще очищается - тем лучше FPS у сервера.

 

3. Как уже говорил Ultima - присвоение переменных такого типа

 

player setVariable ["cashMoney",_cash,true]; // true - отвечает за отправку переменной всем игрокам
 

Везде это явление убрать не получиться, по возможности.

 

4. Замена PublicVariable (отправить всем клиентам) на PublicVariableClient (отправка одному, определенному клиенту)

 

5. Сделать реже обновление игрока в БД (либо увеличить время между обновлениями, либо обновлять только при необходимости)

 

6. Максимальное упрощение скриптов - чем проще скрипт, тем быстрее он срабатывает, сюда можно отнести:

 

  • исключение не нужных проверок
  • меньшее количество переменных в скрипте
  • использование заранее заготовленных функций если действие повторяется много раз

7. Очистка заброшенного транспорта

 

8. Использование виртуального гаража

 

9. Меньшее количество объектов на торговых городах

 

10. Ограничение максимально допустимого количества построек

 

11. Использование для миссий безголового клиента

 

В принципе продолжать можно очень долго, но основные параметры, как я считаю, описаны выше в этом сообщении.

Изменено пользователем Windows (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: NoNameUltima
      Автор: NoNameUltima
      v. 0.1.7
      Стоимость: 2500
       
      Мод предоставляется в двух частях:
      Клиентский мод(для игроков). Ключи и подписи, присутствуют(При необходимости изменения содержимого - ключ и подписи можно переделать). Серверный мод(только для сервера). *Моды связанны между собой.
       
      Что присутствует:
       
      Дебаг монитор *Есть настройка в конфигурации - отображать, или нет монитор при заходе на сервер.
      **Кнопка вкл\выкл настраивается в конфигурации
      За убийство зомби, повышается счетчик убийств зомби. За убийство зомби, начисляются наличные(кол-во настраивается в конфигурации). При смерти игрока, наличные остаются в трупе.(Забрать можно). За убийство игрока, повышается счетчик убийств людей. Метки на карте с указанием торговых зон. Стартовое приветствие игроков. ПНВ работающий от батарейки. Панель игрока Зараженные зоны. Стартовый инвентарь для игроков(по UID'ам, и общий). Стартовые позиции для игроков(по UID'ам, и случайные для тех кого нет в списке). Статичные постройки на карте(загрузка из класса). Создание коробок с содержимым. Команды чата:  
      Доп. статичные функции:  
      skype: hf-trade
       
      P.S. Обновления платные(для тех кто приобретал мод ранее: 25% от общей стоимости, до актуальной версии).
      P.S.P.S. Весь функционал является БЕТА-ВЕРСИЕЙ!
    • Автор: 123new
      В данной теме я распишу возможность создания серверного мода для сервера на свобственном примере и объясню как его собрать.Работающий на момент публикации статьи на версии сервера игры 1.4.152050.
       
      Нам понадобятся:
      1. Сервер игры актуальной версии, не ниже патча 1.04. Как установить можно узнать тут:
      До версии 1.04 параметра servermod у сервера игры не существовало!!!
      2. Программа 'PBO manager' с состава инструментария армы из сети: https://www.armaholic.com/page.php?id=16369
      Зеркало: https://yadi.sk/d/_gmzoNSDpNJTt
      Еще зеркало:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      4. Notepad++ https://notepad-plus-plus.org/download P.S. Вместо 'PBO manager' можно использовать DayZ Tools, но как им пользоваться разбираемся сами ;)
       
      И так, приступим:
      1. Предположим, что у нас имеется свой некий набор скриптов, который необходимо добавить серверу, но не на уровне миссии сервера, а на более ранних уровнях его загрузки. Например, добавить свой killfeed, модифицировать или изменить какой-либо из родных скриптов сервера игры, либо вовсе модификации, подключенной у вас.
      Для примера в этой теме и данного гайда я взял вот этот набор скриптов, собранный непосредственно для данной темы за 5 минут, и не изменяющий в сервере ровным счетом ничего. Он может послужить базой для создания своих модов, функций, переменных или классов. Данный гайд будем описывать, исходя из этого архива.
      Архив:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      2. Создаем папку с нашим модом. Для примера, это будет папка '@My_Server_Mod'. В созданной нами папке создаем папку 'Addons', а в ней папку 'My_Server_Mod'.
      3. Помещаем содержимое распакованного архива в папку 'My_Server_Mod'. Должно получиться так:

      4. В папке 'My_Server_Mod' создаем файлик 'config.cpp' и заполняем его следующими данными (советую использовать Notepad++ для этого):
      class CfgPatches // требуется обязательно { class My_Server_Mod // требуется обязательно, совпадает с именем мода { units[]={}; // may be not worked weapons[]={}; // may be not worked requiredVersion=0.1; // may be not worked requiredAddons[]={}; /* requiredAddons[]= { "DZ_Data", // Перечисляем требуемые и используемые модом аддоны (pbo-файлы игры и модов по их внутренним скриптовым именам) }; */ }; }; class CfgMods // // требуется обязательно, совпадает с именем мода { // https://community.bistudio.com/wiki/DayZ:Modding_Structure#Mod_presentation class My_Server_Mod { dir = "My_Server_Mod"; // Имя папки мода, совпадает с именем мода picture = ""; // Картинка в описании мода action = ""; // Ссылка, например вот так: action = "https://dayz.com/"; hideName = 1; // Не уверен, что этот параметр работает hidePicture = 1; // Не уверен, что этот параметр работает name = "My_Server_Mod"; // Имя мода (а также его внутреннее скриптовое имя) logoSmall = "Mods/TestMod/modlogosmall.tga"; // значок рядом с именем мода, если описание не развернуто logo = "Mods/TestMod/modlogo.tga"; // логотип под меню игры logoOver = "Mods/TestMod/modlogohover.tga"; // при наведении курсора мыши на логотип tooltip = "tooltip"; // подсказка при наведении курсора мыши overview = "My Server Mod"; // Описание credits = "123new"; // credits author = "123new"; // author authorID = "0"; // author steam ID version = "1.0"; // version extra = 0; // Не уверен, что этот параметр работает type = "mod"; // требуется обязательно, остается неизменным // inputs = "mods\testmod\inputs\my_new_inputs.xml"; // необязательно, при использовании пользовательских inputs dependencies[]={"Core","GameLib","Game","World","Mission"}; // необязательно, если необходимо установить зависимость класса class defs { class engineScriptModule { value=""; // если значение пустое, используется функция ввода по умолчанию files[]={"My_Server_Mod/scripts/1_Core"}; // вы можете добавить любое количество файлов или каталогов, и они будут скомпилированы вместе с оригинальными скриптами игрового модуля }; class gameLibScriptModule { value=""; files[]={"My_Server_Mod/scripts/2_GameLib"}; }; class gameScriptModule { //value="CreateGameMod"; // когда значение заполнено, имя функции ввода модуля скрипта по умолчанию перезаписывается им value = ""; files[]={"My_Server_Mod/scripts/3_Game"}; }; class worldScriptModule { value=""; files[]={"My_Server_Mod/scripts/4_World"}; }; class missionScriptModule { value=""; files[]={"My_Server_Mod/scripts/5_Mission"}; }; }; // Если какой-то из разделов скриптинга вам не нужен и вы не сибираетесь его паковать, сотрите необходимый блок с ним выше и в массиве dependencies }; }; Пояснения в файле оставил. Файл готовый:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Как видите, в 'deffs' названия классов и путей соответствуют родным из 'scripts.pbo', но с допиской имени мода. Имя мода в данном случае и есть идентификатор для обращения к своему моду извне. А в 'dependencies' перечисляются используемые классы оригинальных скриптов без дописки номера секции. Количество используемых 'dependencies' и блоков 'deffs' должно быть идентично.
      Пояснения есть также и в официальной документации от разработчика: https://community.bistudio.com/wiki/DayZ:Modding_Structure#Mod_presentation
      5. Запаковываем нашу папку 'My_Server_Mod' в pbo-файл 'My_Server_Mod.pbo' через 'PBO manager', как на скриншоте ниже:

      Можно использовать и другие способы запаковки, если знаете их или привычны вам.
      6. Добавляем в параметры запуска сервера параметр:
      "[email protected]_Server_Mod;" -FilePatching 7. Радуемся, наш серверный мод готов. Пример готового серверного мода:
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      P.S. Создавать bikey файл для мода и bisign подписи для него не требуется, иначе это может привести к неработоспособности серверной модификации (возможно, недоработка сервера игры разработчиком)
       
      Отмечу сразу, что данный способ подходит для модификации и переписывания оригинальных классов скриптов сервера от разработчиков и модификации чужих модов с помощью моддинга, применяется исключительно на стороне сервера игры и клиент игры не затрагивает. Распространять такой мод игрокам НЕ НУЖНО!
      Изменение оригинальных скриптов, для которых не предусмотрена операция 'modded class' в движке игры, а также классов и функций, которые защищены языком и движком игры от такого рода действий через серверные моды не получится. Если вы столкнулись с этим, вам проще распаковать scripts.pbo и поместить папку scripts в корень сервера игры, добавить в параметры запуска сервера параметр -FilePatching и изменять напрямую в папке необходимые вам файлы. (правда из-за ошибки разработчиков на патче 1.04 данный метод не работает корректно)
       
      P.P.S. Процедура создания своего собственного клиент-серверного мода на основе скриптов работает таким же образом. В случае создания такого мода, файл 'config.cpp' может быть для стандартного мода более разнообразным, а также после требуется обязательная подпись такого мода в bisign и создание bikey файлов. Более подробно это освещать требуется отдельно!
    • Автор: Sparco37rus
      В общем когда ничего не делаю фпс около 60-70, но как только начинаю что-то пробовать скрафтить, или построить, то фпс просаживается до 20 и так держится, пока не перезайду на серв. Сервер чистый. С чем может быть связано?
    • Автор: HellBoy
      Всем привет.
      Краткая пред история. Сидел я на ВДС I7-6700, если выражаться абсолютными цифрами, Эверест по производительности показывает 24054. Серверный фпс, при пустом сервере 50. при онлайне 29-35 варьируется 5-8. Решили сменить хост. Взяли выделенку. I7-6700. Тот же эверест показывает 25939. Так как это выделенка, логично предположить увеличение серверного фпс. На практике, имеем это.... Пустой сервер - максимальный фпс 45,5 (даже при пустой бд), против 50 на ВДС. С онлайном 20-35 варьируется от 3х до 6. Явная потеря производительности. Возникает вопрос. что так повлияло на серверный фпс при старте?. Долго думать не стал, подумал что гонит хост и решил вернуться на предыдущий хост. т.е ВДС. Беру тот же конфиг, заливаю сборку и то го фпс, который был до переустановки винды - не вижу. те же 45фпс как и на выделенке. После этого начались поиски.... переустановка 4х разных Виндовс. 1я, та, которая стояла изначально (7ка). Затем, виндовс сервер 12,16, видновс 10, переустановка разных версий библиотек. драйверов, Клиент, с локального, тестового компьютера перекидывал, (Где при тестах, стартовый фпс 50), Разные версии XAMP, в общем все возможное, на мой взгляд, сделано. прошу помощи, может кто посоветует, что я мог пропустить. Да и в принципе, 3 года поднимаю сервера, всегда схема работала. что могло обновиться что произошло снижение, именно фпс на пустом сервере. разбирать фпс под нагрузкой без понимания,смысла нет.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
         Эверест на ВДС I7 6700
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       ФПС на пустом сервере
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       ФПС с онлайном
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Эверест на Выделенке I7 6700 
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      ФПС на пустом сервере (выделенка)
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       Онлайн на выделенке
    • Автор: BlackStalker
      Здравствуйте форумчане!
      Хотелось бы узнать какими способами можно повысить серверный фпс
      Знаю есть подобные темы. Но хотелось бы узнать как можно повысить серверный фпс кроме правки скриптов.
      Вот мой basic.cfg


      И init.sqf