Сейчас 12:43:24 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
[JASS] Альтернативный урок 3. Функции
BlackFoxiДата: Среда, 10 Апреля 2013, 17:55:23 | Сообщение # 26
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Цитата (Duosora)
Быдлокодинг

Конструкция
Код
    if IsUnitType(uAz,UNIT_TYPE_DEAD) then
     else
         set lCz = lCz
     endif

выполняется на 6,25% быстрее чем, предложенное Дуосом
Код
    if not IsUnitType(uAz,UNIT_TYPE_DEAD) then
         set lCz = lCz
     endif

А теперь, врун Дуосора, обосрись, обмажься и распадись на атомы. Это не быдлокодинг, а оптимизация по скорости. Ты ни черта не знаешь о программировании, поэтому я запрещаю тебе использовать жаргонизмы.

Добавлено (10 Апреля 2013, 17:55:23)
---------------------------------------------
Что такое быдлокодинг?

 

Ty3uKДата: Среда, 10 Апреля 2013, 17:56:48 | Сообщение # 27
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
BlackFoxi, а можно пояснение почему?
Уж очень интересно. :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BlackFoxiДата: Среда, 10 Апреля 2013, 18:09:00 | Сообщение # 28
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Что почему?

Добавлено (10 Апреля 2013, 18:09:00)
---------------------------------------------
Использовалось:

Код
globals
     integer lCz=0
endglobals
function IntToStrz takes integer icz returns string
     local string sAz = ""
     local integer lAz = icz
     local integer lBz = 0
    if lAz == 0 then
       return "0"
     endif
     if lAz < 0 then
       set sAz = "(-)"
       set lAz = - lAz
     endif
     loop
         exitwhen lAz == 0
         set lBz = lAz
         set lAz = lAz / 10
         set lBz = lBz - 10*lAz
         if lBz < 6 then
             if lBz == 0 then
               set sAz = "0" + sAz
             elseif lBz == 1 then
               set sAz = "1" + sAz
             elseif lBz == 2 then
               set sAz = "2" + sAz
             elseif lBz == 3 then
               set sAz = "3" + sAz
             elseif lBz == 4 then
               set sAz = "4" + sAz
             elseif lBz == 5 then
               set sAz = "5" + sAz
             endif
         else
             if lBz == 6 then
              set sAz = "6" + sAz
             elseif lBz == 7 then
              set sAz = "7" + sAz
             elseif lBz == 8 then
              set sAz = "8" + sAz
             elseif lBz == 9 then
              set sAz = "9" + sAz
             endif
         endif
     endloop
     return sAz
endfunction
function fn1 takes nothing returns nothing
     local unit uAz
     set uAz = CreateUnit(Player(0),'hsor',.0,.0,.0)
     loop
         if not IsUnitType(uAz,UNIT_TYPE_DEAD) then
             set lCz = lCz
         endif
         set lCz = lCz+1
     endloop
endfunction
function main takes nothing returns nothing
     local integer lAz = 0
     call StartThread(function fn1)
     loop
         call DisplayTimedTextToPlayer(Player(0),0,0,20,IntToStrz(lAz)+"="+IntToStrz(lCz))
         set lAz = lAz+1
         call Sleep(1)
     endloop
endfunction

Этот код написан как попало.
 

Ty3uKДата: Среда, 10 Апреля 2013, 19:03:06 | Сообщение # 29
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
BlackFoxi, почему else быстрее, чем not?

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Среда, 10 Апреля 2013, 19:17:21 | Сообщение # 30
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Если я правильно все понимаю, для осмысления этого придется опуститься до уровня байт-кода. В варианте Дуоса интерпретатор вынужден вычислить not - и только потом проверить получившееся значение. В варианте Алисы будет просто вставлен jnz. Именно на этой лишней операции и экономится 6.25%.

Но все это лишь домыслы, никто, кроме Близзов, доподлинно не знает, как устроен их интерпретатор. Мы можем лишь гадать.


 

Ty3uKДата: Среда, 10 Апреля 2013, 19:25:53 | Сообщение # 31
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Можно у Альфа спросить, в принципе. :)
Он же раскладывал game.dll


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BlackFoxiДата: Среда, 10 Апреля 2013, 19:44:33 | Сообщение # 32
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Потому что на то была воля божья. Все зависело даже от угла поворота бутылки пива на столе разраба.

Какая тебе на хрен разница? Что-то одно всегда выполняется быстрее, или оба варианта выполняются за одинаковое время, или с переменным успехом. Даже глядя на исходники интерпретатора не все можно предсказать. Все трассируют, тестят, отлаживают.

Движок вара не гениален, устарел - потому не стоит дизассемблирования.
Указать, где обрабатывается if then else я не могу.
 

Ty3uKДата: Среда, 10 Апреля 2013, 19:58:29 | Сообщение # 33
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Как грубо. Интерес - вещь такая.

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BlackFoxiДата: Среда, 10 Апреля 2013, 20:34:25 | Сообщение # 34
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Да пошел твой интерес - открывай да крякай. Да провались этот топан, попавший в Гугл. На следующей xss непременно удалю. Мне нужно было поглумиться над Дуосом, корпевшим над такой простой темой несколько дней. Я отпостило урок, как он примерно должен бы был выглядеть, но написанный за час. Тема простая - формулировки почти единственные. У Дуоса боль и выбор: постить свое, похуже; свиснуть из моего/чьего-то. Правильный выбор не очевиден: отредактировать мое, поправив грамматику.
А давать урок, учить тому, что в рунете изжевано не предполагалось. У меня просто сообщение было.

Добавлено (10 Апреля 2013, 20:34:25)
---------------------------------------------
Еще раз. Кто такие быдлокодеры?

 

Ty3uKДата: Среда, 10 Апреля 2013, 20:39:03 | Сообщение # 35
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Хе, ну если нет ответа - можно об этом спокойно сказать. А то прям аж загорелась. :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Капитан_ОчевидностьДата: Среда, 10 Апреля 2013, 20:57:34 | Сообщение # 36
1 уровень
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Блокировки:
Цитата (BlackFoxi)
Указать, где обрабатывается if then else я не могу
 

Ty3uKДата: Среда, 10 Апреля 2013, 21:25:17 | Сообщение # 37
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну и все, мне достаточно рассуждений Коли.
Я ведь не хотел конкретного ответа, который получить сложно и муторно.
И вообще, спасибо за новую информацию. :)


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Kop4ikДата: Четверг, 11 Апреля 2013, 01:51:29 | Сообщение # 38
1 уровень
Группа: Пользователи
Сообщений: 7
Награды: 0
Репутация: 0
Блокировки:
Alice, продолжайте в том же духе, мне очень интересно ваше суждение.
Можно подробнее?) Очень уж интересно.


Сасайте лалки.
 

DuosoraДата: Четверг, 11 Апреля 2013, 16:31:57 | Сообщение # 39
The cats never sleep...
Группа: Ветераны
Сообщений: 6734
Награды: 10
Репутация: 2161
Блокировки:
Цитата (BlackFoxi)
А теперь, врун Дуосора, обосрись, обмажься и распадись на атомы. Это не быдлокодинг, а оптимизация по скорости. Ты ни черта не знаешь о программировании, поэтому я запрещаю тебе использовать жаргонизмы.

Оу, грамотейка, докажи, что он выполняется быстрее. Иначе будешь врушей.


Не зли других и сам не злись.
Мы - гости в этом мире.
И если что не так - смирись,
Будь поумнее - улыбнись,
Ведь в мире всё закономерно.
Зло, излучённое тобой,
К тебе вернётся непременно.


Сообщение отредактировал Duosora - Четверг, 11 Апреля 2013, 16:32:09
 

BlackFoxiДата: Четверг, 11 Апреля 2013, 16:37:43 | Сообщение # 40
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Сообщение #28
 

SirNikolasДата: Четверг, 11 Апреля 2013, 18:24:39 | Сообщение # 41
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (BlackFoxi)
Еще раз. Кто такие быдлокодеры?
Давай не будем начинать бессмысленные споры. :)


 

BlackFoxiДата: Четверг, 11 Апреля 2013, 20:00:37 | Сообщение # 42
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
А не то что? Уже все, что могло быть, было.
 

Kop4ikДата: Пятница, 12 Апреля 2013, 01:00:59 | Сообщение # 43
1 уровень
Группа: Пользователи
Сообщений: 7
Награды: 0
Репутация: 0
Блокировки:
BlackFoxi, могут ли быть некоторые недостатки в оптимизации? Будьте любезны, ответьте на этот вопрос, мисс Alice.

Сасайте лалки.
 

[Muzaf]VostanovlenieДата: Пятница, 12 Апреля 2013, 14:45:46 | Сообщение # 44
1 уровень
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 38
Блокировки:
Цитата (Kop4ik)
могут ли быть некоторые недостатки в оптимизации?

Дам ответ за лису. Не могут. Что за глупый вопрос?


Судари, меня взломали. За что? Я это заслужил? :(
 

ВолчачкаДата: Пятница, 12 Апреля 2013, 19:54:26 | Сообщение # 45
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
BlackFoxi, Тогда такой вопрос. Где лучше будет применить условный оператор "not"?

Сообщение отредактировал Волчачка - Пятница, 12 Апреля 2013, 20:21:32
 

SirNikolasДата: Пятница, 12 Апреля 2013, 20:13:08 | Сообщение # 46
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (BlackFoxi)
А не то что?
Ничего. Просто в этом нет логики. Мы все знаем, что ты сможешь доказать свою точку зрения, так зачем тратить время на такие споры?


 

BlackFoxiДата: Пятница, 12 Апреля 2013, 20:45:57 | Сообщение # 47
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Чтобы растянуть удовольствие. Быдлокодер - оскорбление, не литературное, не словарное, не допустимо в профессиональном кругу, буквально: программист, слепо следующий чужим инструкциям. Ответ не требуется.
 

Ty3uKДата: Пятница, 12 Апреля 2013, 21:01:47 | Сообщение # 48
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Верно. Быдлокодер != говнокодер.

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BlackFoxiДата: Пятница, 12 Апреля 2013, 22:27:24 | Сообщение # 49
2 уровень
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 10
Блокировки:
Цитата (SirNikolas)
придется опуститься до уровня байт-код

Код JASS должен абсолютно одинаково выполняться на любом железе, поэтому любая операция имеет фиксированное время выполнения, кратное 3,3333333 микросек.
Некоторые значения.
loop + endloop 3,3333333 мкс
exitwhen 6,66666666 мкс
if then else(независимо от наличия else, выбранной ветки и команд в ветках) 10 мкс
elseif эквивалентно else if
set var = 6,666666 мкс
+ - * / == < > != 13,333333 мкс
and or 10 мкс
not 3,333333 мкс
Значения выбраны разрабом наугад.
 

ВолчачкаДата: Суббота, 13 Апреля 2013, 13:28:36 | Сообщение # 50
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата (BlackFoxi)
Значения выбраны разрабом наугад.

Очень интересно.

Не удивительно, что движок вара сделан, как попало. Я в другом смысле.
^Это не в счет, продолжайте.

Добавлено (13 Апреля 2013, 13:28:36)
---------------------------------------------

Цитата (dredsss)
function postKinga takes real rX, real rY returns integer

postKinga - с чего такая ассоциация?
 

  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz