[Совет] Немного про оптимизацию и создание сервера
|
|
Jamiraque[t0wer] |
Дата: Понедельник, 13.07.2015, 14:54 | Сообщение # 1
|
Советник
Сообщений: 603
Статус: Offline
|
Здравствуй уважаемый читатель. Знакома проблема нагрузки? На сервере невозможно играть? Тогда эта тема для тебя.
Пойдем с начала. Допустим, у вас есть мод, хорошие идеи, стартовый админ состав, примерно 10-20 стартового онлайна. При создании сервера главное - выбрать хороший хостинг (место размещения вашего игрового сервера). Например, я никогда не использую сервисы, специально адаптированные под хостинг серверов SAMP, ведь они намного дороже + много дополнительных плат (оплата за слоты, порт). Лучше использовать Виртуальные Выделенные Серверы (VDS/VPS). За 300-400р вы получите IP, следовательно любой желаемый порт (даже 7777), гарантию на конфиденциальность ваших данных (если у вас хороший хостер то и защиту от DD*S атак). Внимание! Хостинг с оперативной памятью ниже 512 мб может быть причиной "лагов" на сервере. Также важна пропускная способность VDS/VPS сервера (желательно выше 10мб/с). Далее, советы по оптимизации мода. Переменные. Допустим у вас есть проверка на наличие паспорта у игрока. Переменная может иметь два варианта - либо 0, либо 1 (ведь паспорт или есть, или его нету. Другого варианта нет). В таком случае лучше использовать тип переменной bool. Пример: Код PlayerInfo[playerid][pPassport]; //pPassport в enum'е отметить типом bool:pPassport Насчет констант. MAX_PLAYERS и т.д. лучше использовать под себя. Пример: Код #undef MAX_PLAYERS #define MAX_PLAYERS 20 ВАЖНО! Никогда не используйте цикл в цикле. Видел такие коды: Код for(new i = 0; i < MAX_PLAYERS; i++) { for(new z = 0; z < MAX_PLAYERS; z++) { } } Следовательно, такой цикл выполнится 500 раз по 500. Пока это все, буду дополнять по возможности. Писал понятным языком, все для вас
Сообщение отредактировал Jamiraque[t0wer] - Вторник, 14.07.2015, 10:23 |
|
|
|
[CM]Kingster |
Дата: Понедельник, 13.07.2015, 17:21 | Сообщение # 2
|
Боец
Сообщений: 245
Статус: Offline
|
Цитата Jamiraque[t0wer] ( ) #define MAX_PLAYERS 20 Цитата Jamiraque[t0wer] ( ) Следовательно, такой цикл выполнится 500 раз по 500. Не 500 по 500, а 20 по 20.
Пользователь Cheat - Master уже 400 дней.
Я в Контакте - vk.com/buddy_fly
|
|
|
|
Artem_Buero |
Дата: Понедельник, 13.07.2015, 18:18 | Сообщение # 3
|
Сообщений: 4223
Статус: Offline
|
Перенёс
МОЙ ВК - https://vk.com/gospodin_buero
|
|
|
|
Len1n |
Дата: Понедельник, 13.07.2015, 18:41 | Сообщение # 4
|
Боец
Сообщений: 89
Статус: Offline
|
Jamiraque[t0wer],
Bool занимает те же 4 байта, как и Int. Особого смысла в использовании Bool нету. НО! Для информации игрока можно использовать PVar. По поводу уменьшения MAX_PLAYERS. Вообще не советую использовать такую константу. Есть же прекрасная GetMaxPlayers() + Всякие foreach.
Связь со мной: Skype: po61-rap E-Mail: len1nthe@gmail.com
if(time>=1500 && rep<500) { cout « "200 репы накручено!"; rep+=200; }
|
|
|
|
Jamiraque[t0wer] |
Дата: Понедельник, 13.07.2015, 22:13 | Сообщение # 5
|
Советник
Сообщений: 603
Статус: Offline
|
Цитата Len1n ( ) Bool занимает те же 4 байта, как и Int. Особого смысла в использовании Bool нету. Если честно, я точно не знаю, я просто слышал об этом. Цитата Len1n ( ) GetMaxPlayers() c этим согласен
|
|
|
|
[CM]ElitaMen |
Дата: Вторник, 14.07.2015, 02:35 | Сообщение # 6
|
Любитель
Сообщений: 42
Статус: Offline
|
Полезно!
VK- https://vk.com/id290124982
|
|
|
|
Jamiraque[t0wer] |
Дата: Вторник, 14.07.2015, 10:22 | Сообщение # 7
|
Советник
Сообщений: 603
Статус: Offline
|
Цитата [CM]ElitaMen ( ) Полезно! Благодарю, старался
|
|
|
|
Enrique_iBlack |
Дата: Вторник, 14.07.2015, 21:07 | Сообщение # 8
|
Новичок
Сообщений: 16
Статус: Offline
|
Цитата Len1n ( ) Bool занимает те же 4 байта, как и Int. Особого смысла в использовании Bool нету. НО! Для информации игрока можно использовать PVar. По поводу уменьшения MAX_PLAYERS. Вообще не советую использовать такую константу. Есть же прекрасная GetMaxPlayers() + Всякие foreach.
Foreach - не самый лучший вариант.
По мимо Pvar существуют еще пару видов переменных char(самый лучший способ,так считаю я).
Автору: Цикл в цикле,можно использовать,но с умом.Большого вреда при правильном применение это не окажет,а может вовсе не оказывать.Мега оптимизатор 80 левела,думай чему учишь,не чего полезного не увидил.
Сообщение отредактировал Enrique_iBlack - Вторник, 14.07.2015, 21:08 |
|
|
|
Jamiraque[t0wer] |
Дата: Вторник, 14.07.2015, 21:56 | Сообщение # 9
|
Советник
Сообщений: 603
Статус: Offline
|
Цитата Enrique_iBlack ( ) Цикл в цикле,можно использовать,но с умом ох ты ж как. С умом. ясно, лучше бы ничего не писал (дураку понятно, что не надо пихать куда попало) Цитата Enrique_iBlack ( ) Мега оптимизатор 80 левела,думай чему учишь Что вы все тут агро? А ты хочешь в паблик форуме были все секреты оптимизации? Может я тебя удивлю, но для полной оптимизации нужно хотя бы видеть код. А это просто советы, чего не стоит делать при работе с модом.
|
|
|
|
Enrique_iBlack |
Дата: Среда, 15.07.2015, 20:01 | Сообщение # 10
|
Новичок
Сообщений: 16
Статус: Offline
|
Как то я тоже раньше спорил что цикл в цикле очень плохо.Увы мне доказали обратное...Tы сначала тестируй какую нагрузку,что и где дает.А потом уже думай что пишешь) А теперь сделай проверку с new.pwn)Надеюсь додумаешься хотя бы как это сделать верно.
|
|
|
|