Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Заморочки по поводу нагрузки на сервер и оптимизации кода

Статус
В этой теме нельзя размещать новые ответы.

HELKERN

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

Я бы не сказал что это урок, мануал или что-то научное, это лишь рассуждения на тему.

Таймеры
Почему многие их вас считают правильным убрать множество таймеров, с разной частотой вызова, и засунуть их в один? Это не разумно с точки зрения нагрузки сервера и логической точки зрения.
Давайте я дам вам пример из жизни:

Есть 3 автомобильные дороги. У них средний поток автомобилей в день, без пробок.
Псевдооптимизаторы думают, что если направить все 3 потока автомобилей на одну дорогу(таймер), причем ставя различные светофоры на этой дороге(метафора условий), то быстрее все поедут.
Это не так. Не надо так делать. Разные таймеры спокойно будут работать с разной частотой повтора и не доставят никакого дискомфорта.

Без лишней нужны не используйте общие таймеры(SetTimer), когда можно использовать таймер, только на одного человека (SetTimerEx) и убить его, при достижении какой-либо цели.

О главном
Кто-то использует PVar вместо массивов, кто-то использует stock вместо public. Всё это фигня, если и есть от этого уменьшение нагрузки, то оно на столько минимально, что вы даже не почувствуете это. Главную роль, в нагрузке на сервер, играют ваши многотысячные объекты, машины, пикапы.
Я не говорю о том, что нужно убрать все объекты, нет. Владельцам серверов, использующих очень много вышеперечисленных объектов(извиняюсь за тавтологию), обязательно к использованию стримеры. Надеюсь на форуме достаточно тем, по переводу стандартных функций на стримеровские.

Файлы, MySQL, INI
Сейчас во многих(а я думаю в большинстве) используется работа с внешними данными(по средствам стандартной работы с файлами, по средствам сторонних разработок(MXIni итд), через Базу данных) Что использовать - решать вам. Главное надо знать то, что нужно использовать как можно реже обращение к данным.

Например сохранение данных о аккаунте. Некоторые из вас используют это слишком слишком часто. Достаточно использовать сохранение аккаунта только при выходе с сервера в функции public OnPlayerDisconnect(playerid, reason).
Однако при краше сервера или непредвиденной остановки OnPlayerDisconnect не вызовется и данные игроков, которые онлайн, не сохранятся. Если вы боитесь, то можно использовать таймер.
Некоторые даже засовывают в таймер =) Жесть)

Думаю пока на этом все, появятся ещё мысли и я дополню тему. Спасибо за внимание!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу