![]() |
у меня goto - 4, for - 6
PS я всегда говорил GOTO - Forever !! |
у меня:
goto - 350 for - 95 еcли вырубить debug goto - 7 for - 4 PS: включённый Скайп, ВинАМП, Аська и скрипт Sign0fMissery |
вот еще всем кто говорит что функции рулят, пусть протестят вот этот код:
Код:
ITER=1000000 |
GoTo и GoSub рулят :super: ... вот тока в подпрограммы нельзя посылать параметры :unsure: как в функции и с возвратом какого-то значения тоже проблема будет (без допогнительных переменных не обойдешься).
|
процедурки masm foreva
ps. вывод goto медленее for ТОЛЬКО ПОТОМУ ЧТО В GOTO СТОИТ IF! вот доказательство Код:
time2=MilliSecs() |
impersonalis, не обижайся и не ругайся :lol:
гото всётаки рулят :lol: |
а рулит потому что его щитает проц :)
|
Цитата:
Именно что мне постоянно говорят: вместо лишнего цикла - я буду проходить по ГоТо с условием. Вот эти товарищи пусть утрутся. И ещё: кто вам сказал, что компилятор blitz транслирует высокоуровневую команду goto в низкоуровневую команду goto. Ещё не факт, что в байт-коде оно будет выглядеть как ассемблерное ГоТо, а не набор из if-овов. Мы же обсужаем использование ГоТо в языках высокого уровня, в частности- blitz3d :P |
Цитата:
|
я же неговорил про + и - :)
кстати гото внатуре непереходит в нискоуровневый код незабываем как устроен компилятор а вот гото в bmax 100 проценто рулит - так как транслируется в jmp :) |
Цитата:
Код:
ITER=10000000P.S. На ассемблере часто вместо прямого перехода jmp addr используется связка типа push .... ret. Гораздо полезнее посмотреть, насколько медленнее происходит обращение к глобальным переменным, объявив ITER как GLOBAL..... |
GOTO в Блитце бывает полезна (очень редко) на коротких фрагментах программы. В одной из полных игровых программ, идущих в комплекте с полной версией Блитц3Д, она используется несколько раз и не ухудшает ни стиля, не читаемости программы. Другое дело, что современный принцип построения программм (в том числе и на ассемблере) - модульный, поэтому это GOTO и GOSUB может быть с трудом оправдано в пределах одного модуля, хотя любой алгоритм позволяет обойтись и без них.
Дополнительные потери времени при использовании функций, связанных с формированием кадра переменных на стеке и его использования, настолько несущественны, что не идут ни в какое сравнение с потерями времени на отладку и модификацию программы при отсутствии модульной структуры. Разумеется, речь идет не о тесте на скорость, а о нормальной программе. В таких программах использование GOTO и GOSUB означает только лишь некомпетентность программиста (я не имею в виду старые версии Бейсика, где просто не было полноценных функций). |
Цитата:
1. функции работают с такой-же скоростью как и прямые переходы 2. тот кто юзает функции типа некомпетентен и в простонароде называется "ламер", по аналогии всех велосипедистов можно было опустить, ведь давно придуманы машины... молодцы, что вы изучили функции, только вы от этого лучше не стали, могу сказать ооочень плохую черту функций, а именно восходящий стиль мышления когда из мелких функций складываются большие, потом еще больше и т.п... и то, когда дважды повторяющиеся две строчки в коде пихают в отдельную функцию это нормально да?... могу короче представить много глюков с программированием функциями, примерно столько-же по программированию гото'м... здесь главное это алгоритмическое мышление, и реализовать один и тот-же алгоритм можно поразному... НО единственная плохая черта в вас кодящих функциями, это то, что вы против тех кто кодит с участием ГоТо... а мы ГоТовцы нисколько не против вас... :) |
Прирост от юзания ГоТо в прогах на б3д ( а имеено об этом здесь речь) - б.м. [как выражается alex-mad - "безумно малая величина"], а вот код сильно страдает.
Сдаётся мне, что все разговоры о, якобы, борьбе за скорость выполнения имеют под собой всего лишь не умение мыслиьт абстрактно ( лично, SubZero в виду не имею, т.к. достаточно хорошо знаю его адекватность и умственные способности ). Хотя ГоТо в отдельных случаях (читай: консольный брутфорсер, написанный с 0 на асме) - это вещь :super: , но не здесь (читай: в офигительно разветвлённом алгоритме, описывающем сложные модели поведения перса и NPC). |
по оптимизации кода у меня есть неплохая вырезка из статьи "сравнение производительности КПК и настольных систем"
там человек обяснялся почему он неприменял оптимизацию к коду Цитата:
ето очень косается блицмакса а вот в блице другое дело - тут код нетранслируется никуда :) он остается как был... только математические выражение упрощаются тоесть нету смысла судить что выполняется быстрее :) если бы вместе с кодом заново компилировалась библеотека runtime.dll то тогда бы на разных системах была заметная разница от использования разых методов, а так - пофигу :) ссылка на статью : http://3dnews.ru/cpu/hpc-vs-pc/index02.htm...plate=print.htm |
| Часовой пояс GMT +4, время: 20:16. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot