[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
[Pawno-Урок]Оптимизация кода
Дата: 10.06.2011, Пятница, 17:58:24 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
Репутация: 361+
Опубликовано по просьбе Kozz-Porno, автором так же является он.

...switch/case...


Во первых,скажу сразу,что switch/case жрёт меньше чем if,else,и работает ускоренно,по этому,во многих случаях,советую вам его использовать.
Использовать switch/case нужно так:

Ниже { в паблике ставите:
Quote
switch(глфункция)
{
case 0:
{
функция которую используем в гл.функции
}
}

Ещё,если у вас функция одна,то вы можете вместо:
Code
case 0:
{
   функция которую используем в гл.функции
}

Сделать
Code
case 0: функция которую используем в гл.функции


А теперь,давайте посмотрим наглядный пример:
Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])   
{   
         if(dialogid == 0)   
         {   
               функция);   
         }   
         return 1;   
}

Это стандартный код на if/else,а сейчас посмотрим на новый код с switch/case:

Code
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])   
{   
          switch(dialogid)//включаем оператор   
          {   
               case 0: //если одна функция то можно вот так: case 0: функция);   
               {   
                    функция);   
               }   
          }   
          return 1;   
}

..bool..

Надеюсь многие слышали о bool,true,false,так вот,он занимает всеголишь несколько байт памяти,многие используют во многих модах типо таких проверок:

IsPlayerLogin[playerid] = 1; // Стандартная проверка

IsPlayerLogin[playerid] = true;// Проверка относится к bool.

Попробуем сделать наже божество :) :
К своей переменной,добавляем bool:,пример:
new IsPlayerLogin[MAX_PLAYERS];

Когда сделали bool:,должно получиться так:
new bool:IsPlayerLogin[MAX_PLAYERS];

И теперь,ищем везде ваше название переменной: IsPlayerLogin и заменяем рядом в IsPlayerLogin[playerid] = 1; единицу на true,если будет 0,то на false.

Ждите следущего урока.Удачи,и хорошего умения!

Опубликовано по просьбе Kozz-Porno, автором так же является он.
Дата: 10.06.2011, Пятница, 18:01:21 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Спасибо велька.:)
Дата: 11.06.2011, Суббота, 13:20:21 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 50
Репутация: 388+
Ерудна, некоторые до сих пор dini юзают и в своих гф модах используют паблик onPlayerUpdate для сохранения. Так что биты считать глупо.
Дата: 11.06.2011, Суббота, 14:39:37 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Quote (kimi)
Ерудна, некоторые до сих пор dini юзают и в своих гф модах используют паблик onPlayerUpdate для сохранения. Так что биты считать глупо.

Ну вот например.в моём моде с 0,паблик OnPlayerUpdate не юзается,мод жрёт мало,биты считать не глупо,причем так можно составить нехилый инклуд который будет сопоставлять оптимизированые функции сохранения,и.т.п,по этому,никапельки,ну а плюс за урок мог бы и дать.:D

Добавлено (11.06.2011, 14:39:37)
---------------------------------------------
Надо будет сравнить.

Дата: 11.06.2011, Суббота, 19:56:22 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 50
Репутация: 388+
Kozz-Porno, ok выиграеш ты пару тиков, разве это стоит потраченного времени? На работе мода и на интересе для игроков это не отразиться никак.
Дата: 11.06.2011, Суббота, 21:14:48 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Quote (kimi)
Kozz-Porno, ok выиграеш ты пару тиков, разве это стоит потраченного времени? На работе мода и на интересе для игроков это не отразиться никак.

Ну мне лично оптимизированый код больше смотрится лучше,да и как то,если онлайн под 100,представькак лагать будет NO ,по этому,отразится. KLAss
Дата: 11.06.2011, Суббота, 21:30:07 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
Репутация: 361+
Quote (Kozz-Porno)
если онлайн под 100,представькак лагать будет ,по этому,отразится.

Изза "битов" лагать не будет, это уже совсем другое. Например при юзании циклов может отразиться, а так то не особо.

P.S. - Юзайте foreach by Y_Less, самый быстрый способ. Проверено.
Дата: 11.06.2011, Суббота, 21:34:24 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Quote (Soup_Mc)
Изза "битов" лагать не будет, это уже совсем другое. Например при юзании циклов может отразиться, а так то не особо.

P.S. - Юзайте foreach by Y_Less, самый быстрый способ. Проверено.

Да кстати,очень хорошая оптимизация циклов),можно сказать Самая лучшая,я наверное в своём моде поюзаю её)
Дата: 11.06.2011, Суббота, 22:41:07 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 267
Репутация: 761+
Если использовать нормальный хостинг оптимизация никак не отразится на работе сервера.
Дата: 11.06.2011, Суббота, 22:45:19 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Quote (kAdmin)
Если использовать нормальный хостинг оптимизация никак не отразится на работе сервера.

Да,ты прав,но фтп же не бесконечный.;),да и логи занимают много.
Дата: 12.06.2011, Воскресенье, 08:41:24 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
Репутация: 361+
Quote (kAdmin)
Если использовать нормальный хостинг оптимизация никак не отразится на работе сервера.

+ специальные плагины, которые оптимизирует потоки ;)
Quote (Kozz-Porno)
Да,ты прав,но фтп же не бесконечный.;),да и логи занимают много.

лолчто? я не думаю, что мод будет занимать ТАК много место, и повторяю, речь идет о БИТАХ.
Дата: 12.06.2011, Воскресенье, 08:56:30 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Иногда будет,АМРП,весит 43 мб,омг,+ логи.
Дата: 12.06.2011, Воскресенье, 09:21:42 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 50
Репутация: 388+
Ну если у хостера вместо HDD стоят FDD, то да :D
Дата: 12.06.2011, Воскресенье, 09:22:49 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 163
Репутация: 81+
Quote (kimi)
Ну если у хостера вместо HDD стоят FDD, то да

:D :D
Дата: 12.06.2011, Воскресенье, 10:17:44 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
Репутация: 361+
Quote (Kozz-Porno)
Иногда будет,АМРП,весит 43 мб,омг,+ логи.

AMRP весил 4 метра, нагрузка была 43, и 20 из них изза MidoStream.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: