Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> if, &&, || - оптимизация, как быстрее проверки идут?
AliceDiren
сообщение Oct 18 2005, 14:17
Сообщение #1


Level 7
**

Класс: Маг
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [Sn]



LEX: Все началось с этого:

Neverwinter Script Source
int StartingConditional()
{
object oPC = GetPCSpeaker();

if (GetLocalString(oPC, "victorspoken") == "1") return FALSE;

if (GetGender(oPC) != GENDER_FEMALE) return FALSE;

if (GetRacialType(oPC) != RACIAL_TYPE_DWARF) return FALSE;

if (GetRacialType(oPC) != RACIAL_TYPE_GNOME) return FALSE;

if (GetRacialType(oPC) != RACIAL_TYPE_HALFLING) return FALSE;

return TRUE;
}

--------------------------
Быть может так проще?
Neverwinter Script Source
int StartingConditional()
{
object oPC = GetPCSpeaker();
int bResult = FALSE;

if(GetLocalString(oPC, "victorspoken")=="1")
return FALSE;

bResult = (GetRacialType(oPC) = RACIAL_TYPE_DWARF || GetRacialType(oPC) == RACIAL_TYPE_GNOME || GetRacialType(oPC) == RACIAL_TYPE_HALFLING) && (GetGender(oPC) == GENDER_FEMALE);

return bResult;
}


Я просто к тому, что несколько строк, проверяющих условия рассовой принадлежности, стоит объеденить в одну. Гораздо легче читать

Сообщение отредактировал Lex - Oct 18 2005, 15:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
dumbo
сообщение Oct 26 2005, 12:04
Сообщение #2


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



Misty Dragon, ничего не понял из твоего поста... :xz:

QUOTE (Misty Dragon @ Oct 25 2005, 20:08)
Как раз-таки кэйсы намного тяжелее обрабатываются, нежели простая проверка условия. Намного проще прописывать if() else конструкцию, ибо , в принципе, с этой конструкцией и так все ясно.

о чем идет речь - о простоте восприятия, "прописывания" или о скорости выполнения?
что характерно, сие высказывание неверно в любом случае. ;) если говорить вообще(безотносительно nss), то switch в грамотных реализациях гораздо "легче" выполняется нежели куча if'ов - switch=один безусловный переход, if'ы=сколько if'ов, столько и условных переходов(не будем вдаваться в тонкости, просто отметим, что условный переход хуже безусловного).

QUOTE (Misty Dragon @ Oct 25 2005, 20:08)
А вот с как кейсы обрабатываться будут, во много зависит от разработчиков интерпретаторов-компиляторов

зависит, и не во многом, а во всем ;) бродило мнение, что nss-switch плох, потому что он является по сути множественным if'ом... а вот судя по "декомпиле" Friedrich'а, оказывается, что он действительно раскладывается на много if'ов, но код генерится гораздо более приятный! :crazy:

QUOTE (Misty Dragon @ Oct 25 2005, 20:08)
По поводу использования переменных. Порой лучше пожертвовать некоторым объемом памяти для скорости.

опять не понял(экий непонятливый;)) - о каких переменных идет речь? глобальных переменных в nss нет. максимальный размах - файл скрипта. переменные скрипта лежат в стэке виртуальной машины, который очистится после окончания работы скрипта. если речь идет о "глобальных" переменных, которые получаются путем SetLocalXXX(GetModule(),.., то непонятен смысл занесения в оные самого хэндла модуля...

QUOTE (Misty Dragon @ Oct 25 2005, 20:08)
И если уж создаете глобальные переменные, то старайтесь их использовать по максимуму ибо у сервера постоянные лики памяти(одна из причин возникновения лагов).

вот хоть тресни, а не могу понять, что именно ты хочешь сказать. какая связь между "глобальными переменными" и утечками памяти?

ну и наконец, апофеоз этого поста:
QUOTE (Misty Dragon @ Oct 25 2005, 20:08)
Полезно будет также глянуть и растактовку команд процессора.

НУ ПРИЧЕМ ЗДЕСЬ РАСТАКТОВКА КОМАНД ПРОЦЕССОРА?! 8(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- AliceDiren   if, &&, || - оптимизация   Oct 18 2005, 14:17
- - Lex   QUOTE (AliceDiren @ Oct 18 2005, 15:17)Быть ...   Oct 18 2005, 14:23
- - AliceDiren   так а там не много-условные, и не вложенные. Я пот...   Oct 18 2005, 14:28
- - Lex   где-то читал или кто-то мне говорил, что операция ...   Oct 18 2005, 14:36
- - Aiwan   Lex давай обсудим этот вопрос со всеми в отдельно...   Oct 18 2005, 15:29
- - dumbo   вскроем правду: имеем два скрипта: 1. несколько ...   Oct 18 2005, 16:27
- - _kaa_   В итоге 1. Если в условии используется функция, о...   Oct 18 2005, 18:54
- - Aiwan   Класс. Давно меня это мучало. Но слишком поздно и ...   Oct 18 2005, 22:32
- - 2_advanced   нужно делать экспорт функций и использовать с++ (...   Oct 18 2005, 22:46
- - Nashman   Если уж речь у вас зашла о языках програмирования,...   Oct 18 2005, 23:27
- - Lex   QUOTE (2_advanced @ Oct 18 2005, 23:46)нужно...   Oct 18 2005, 23:43
- - Friedrich   QUOTE (dumbo @ Oct 18 2005, 16:27)несколько ...   Oct 22 2005, 20:27
- - Misty Dragon   Как раз-таки кэйсы намного тяжелее обрабатываются,...   Oct 25 2005, 19:08
- - dumbo   Misty Dragon, ничего не понял из твоего поста... ...   Oct 26 2005, 12:04


Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 09:05