HELKERN
Новичок
Я недавно на вашем форуме и уже успел понять, что многие из вас интересуются оптимизацией, разгрузкой сервера и подобными вещами.
Вот только многие из вас либо специально, либо в силу своих знаний ошибочно проинформировал об этом.
Я бы не сказал что это урок, мануал или что-то научное, это лишь рассуждения на тему.
Таймеры
Почему многие их вас считают правильным убрать множество таймеров, с разной частотой вызова, и засунуть их в один? Это не разумно с точки зрения нагрузки сервера и логической точки зрения.
Давайте я дам вам пример из жизни:
Есть 3 автомобильные дороги. У них средний поток автомобилей в день, без пробок.
Псевдооптимизаторы думают, что если направить все 3 потока автомобилей на одну дорогу(таймер), причем ставя различные светофоры на этой дороге(метафора условий), то быстрее все поедут.
Это не так. Не надо так делать. Разные таймеры спокойно будут работать с разной частотой повтора и не доставят никакого дискомфорта.
Без лишней нужны не используйте общие таймеры(SetTimer), когда можно использовать таймер, только на одного человека (SetTimerEx) и убить его, при достижении какой-либо цели.
О главном
Кто-то использует PVar вместо массивов, кто-то использует stock вместо public. Всё это фигня, если и есть от этого уменьшение нагрузки, то оно на столько минимально, что вы даже не почувствуете это. Главную роль, в нагрузке на сервер, играют ваши многотысячные объекты, машины, пикапы.
Я не говорю о том, что нужно убрать все объекты, нет. Владельцам серверов, использующих очень много вышеперечисленных объектов(извиняюсь за тавтологию), обязательно к использованию стримеры. Надеюсь на форуме достаточно тем, по переводу стандартных функций на стримеровские.
Файлы, MySQL, INI
Сейчас во многих(а я думаю в большинстве) используется работа с внешними данными(по средствам стандартной работы с файлами, по средствам сторонних разработок(MXIni итд), через Базу данных) Что использовать - решать вам. Главное надо знать то, что нужно использовать как можно реже обращение к данным.
Например сохранение данных о аккаунте. Некоторые из вас используют это слишком слишком часто. Достаточно использовать сохранение аккаунта только при выходе с сервера в функции public OnPlayerDisconnect(playerid, reason).
Однако при краше сервера или непредвиденной остановки OnPlayerDisconnect не вызовется и данные игроков, которые онлайн, не сохранятся. Если вы боитесь, то можно использовать таймер.
Некоторые даже засовывают в таймер =) Жесть)
Думаю пока на этом все, появятся ещё мысли и я дополню тему. Спасибо за внимание!
Вот только многие из вас либо специально, либо в силу своих знаний ошибочно проинформировал об этом.
Я бы не сказал что это урок, мануал или что-то научное, это лишь рассуждения на тему.
Таймеры
Почему многие их вас считают правильным убрать множество таймеров, с разной частотой вызова, и засунуть их в один? Это не разумно с точки зрения нагрузки сервера и логической точки зрения.
Давайте я дам вам пример из жизни:
Есть 3 автомобильные дороги. У них средний поток автомобилей в день, без пробок.
Псевдооптимизаторы думают, что если направить все 3 потока автомобилей на одну дорогу(таймер), причем ставя различные светофоры на этой дороге(метафора условий), то быстрее все поедут.
Это не так. Не надо так делать. Разные таймеры спокойно будут работать с разной частотой повтора и не доставят никакого дискомфорта.
Без лишней нужны не используйте общие таймеры(SetTimer), когда можно использовать таймер, только на одного человека (SetTimerEx) и убить его, при достижении какой-либо цели.
О главном
Кто-то использует PVar вместо массивов, кто-то использует stock вместо public. Всё это фигня, если и есть от этого уменьшение нагрузки, то оно на столько минимально, что вы даже не почувствуете это. Главную роль, в нагрузке на сервер, играют ваши многотысячные объекты, машины, пикапы.
Я не говорю о том, что нужно убрать все объекты, нет. Владельцам серверов, использующих очень много вышеперечисленных объектов(извиняюсь за тавтологию), обязательно к использованию стримеры. Надеюсь на форуме достаточно тем, по переводу стандартных функций на стримеровские.
Файлы, MySQL, INI
Сейчас во многих(а я думаю в большинстве) используется работа с внешними данными(по средствам стандартной работы с файлами, по средствам сторонних разработок(MXIni итд), через Базу данных) Что использовать - решать вам. Главное надо знать то, что нужно использовать как можно реже обращение к данным.
Например сохранение данных о аккаунте. Некоторые из вас используют это слишком слишком часто. Достаточно использовать сохранение аккаунта только при выходе с сервера в функции public OnPlayerDisconnect(playerid, reason).
Однако при краше сервера или непредвиденной остановки OnPlayerDisconnect не вызовется и данные игроков, которые онлайн, не сохранятся. Если вы боитесь, то можно использовать таймер.
Некоторые даже засовывают в таймер =) Жесть)
Думаю пока на этом все, появятся ещё мысли и я дополню тему. Спасибо за внимание!
Последнее редактирование:
