 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Оптимизация
| |
| Stap | Дата: Понедельник, 12.12.2011, 21:16 | Сообщение # 1 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 823
Награды: 13
Город: Нижний Тагил
Репутация: 573
Замечания: 80%
Статус: 
| Здравствуйте,уважаемые пользователя SRC.Хотелось бы узнать,как можно оптимизировать команду,кроме как убирания проверки на конект игрока.Если вас не затрудник,то прошу показать на больших командах.
...карандаши разного цвета на вкус одинаковы....
Мои работы: [MAP]ПТО v.1.0[Законченa][Ссылка(Клик)] [MAP+FS]ПТО v.2.0(Заключительная)[55%]
|
| |
|
|
| Eakwarp | Дата: Понедельник, 12.12.2011, 21:25 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| Использовать ZCMD и sscanf, но вообще, все зависит от конкретной команды.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| roman040494 | Дата: Понедельник, 12.12.2011, 21:28 | Сообщение # 3 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 81
Награды: 0
Город: Екатеринбург
Репутация: -17
Замечания: 20%
Статус: 
| где то тут на форуме видел типа:
If текст() { SendClientMessage(текст) return }
можно зделать так: If(текст)return SendClientMessage(текст)
еще если есть в моде () или ( ) или ( ) и т.д. то их надо убирать.
А также иногда есть всякие new функция[500] можно зделать так new функция[max_player] ну както так.
sa-mp server public enemy №1 ip: game-arena.sytes.net:5555
|
| |
|
|
| Fus1 | Дата: Понедельник, 12.12.2011, 21:45 | Сообщение # 4 |
|
Группа:
Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус: 
| Quote (roman040494) new функция[500] можно зделать так new функция[max_player] о, пойду делать
|
| |
|
|
| toneysix | Дата: Понедельник, 12.12.2011, 21:47 | Сообщение # 5 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| roman040494 абсолютное, глубокое заблуждение. Quote If текст() { SendClientMessage(текст) return }
можно зделать так: If(текст)return SendClientMessage(текст) Один из мифов, который ходит зачастую у подавляющего большинства дилетантов, не понимающих суть процесса компиляции. Код вида if ( условие ) return функция; эквивалентен этому: Code if ( условие ) { функция; return value; } И никакой оптимизации здесь нет, в первом случаи проверяется условие, затем return вызывает функцию и её результат возвращается, во втором случаи выполняется условие, вызывается функция и происходит возврат какого-то значения под value. И соответственно отсутствие фигурных скобок, которые обозначают блок никак не виляет на скорость выполнения функции. Миф давно уже разрушен. Далее: Quote А также иногда есть всякие new функция[500] можно зделать так new функция[max_player] ну както так. Здесь вообще непонятно о чем речь. MAX_PLAYERS - константа, которая заменяется препроцессором в процессе компиляции мода, соответственно разницы опять нет. В целом на счет оптимизации командной части, я соглашусь с eakwarp'ом, zcmd в свое время создавался для упрощения и быстроты выполнения команд, вводимых игроком, а sscanf, написанный на языке с++ так или иначе интерпретирует аргументы команды в несколько раз быстрее, чем стандартные разделители типа strtok, split. Поэтому мне особо добавить нечего. Все уже создали за нас.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Сообщение отредактировал toneysix - Вторник, 13.12.2011, 07:15 |
| |
|
|
| ZiGGi | Дата: Понедельник, 12.12.2011, 22:00 | Сообщение # 6 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| zcmd медленнее традиционного способа на ~40%.
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| Eakwarp | Дата: Понедельник, 12.12.2011, 22:01 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| ZiGGi, lolwut?
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| toneysix | Дата: Понедельник, 12.12.2011, 22:02 | Сообщение # 8 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| ZiGGi тесты в студию) При 1-2 командах несомненно, даже не исключаю, а вот при множествах?
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| Eakwarp | Дата: Понедельник, 12.12.2011, 22:05 | Сообщение # 9 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| toneysix, даже при 1-2, zcmd быстрее чем любые конструкции со strcmp
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| toneysix | Дата: Понедельник, 12.12.2011, 22:06 | Сообщение # 10 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Eakwarp я в целом не замерял скорость, я видел код внутри, по которому можно итак понять, что будет быстрее. Но был бы рад, если бы кто-нить замерил.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
| Eakwarp | Дата: Понедельник, 12.12.2011, 22:10 | Сообщение # 11 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус: 
| toneysix, увы, уже не помню где, ссылка потерялась в недрах оффорума, замеряли при 100000 обработок. zcmd без sscanf был быстрее strcmp в 9000 раз(50 мсек против 8 минут). Результатов со sscanf против strtok увы не помню, но цифры были еще веселее.
More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.
Valakas Roleplay on Twitter
Платные консультации, разработка, в ICQ. Дорого.
|
| |
|
|
| ZiGGi | Дата: Понедельник, 12.12.2011, 22:17 | Сообщение # 12 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Тест Правда это: Quote (toneysix) При 1-2 командах несомненно, даже не исключаю, а вот при множествах? не проверялось, проверю обязательно.
Quote (Eakwarp) даже при 1-2, zcmd быстрее чем любые конструкции со strcmp В zcmd много всякой херни, не может оно быть быстрее пары strcmp'ов
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| toneysix | Дата: Вторник, 13.12.2011, 06:49 | Сообщение # 13 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| ZiGGi чо-то у тя тесты какие-то обратные) Все должно быть в точности наоборот) Да к тому же, ты же сам понимаешь, что будет быстрее, это очевидно. Чем больше команд, тем он медленнее будет обрабатывать, ты можешь конечно же делать сортировки самых употребляемых команд, но это так или иначе не спасет тебя, ведь сам подумай, в zcmd строится функция, которая в последствии вызывается, а strcmp будет раз за разом следовать стремительно вниз, предположим у тебя будет 100 команд, получается, что если игрок введет неверную команду, он пройдет по всем 100 strcmp проверкам, это огромное различие. Что касается dcmd, то он также должен быть медленнее, поскольку в нем вызов идет на прямую, нежели у zcmd CallLocalFunction. Eakwarp со sscanf'ом это да, я тестировал. Кстати, кому интересно, скину свою версию скорректированного zcmd, там я в общем-то избавился от формата, в целом на 10 тысяч итераций выигрыш на 10 миллисекунд. http://solidfiles.com/d/c6d706ce0a/
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Сообщение отредактировал toneysix - Вторник, 13.12.2011, 13:19 |
| |
|
|
| psycho | Дата: Вторник, 13.12.2011, 14:02 | Сообщение # 14 |
|
16 | 13
Группа:
I'm V.I.P.
Сообщений: 327
Награды: 11
Репутация: 645
Замечания: 20%
Статус: 
| Может не в тему,но,для чего нужен sscanf?
|
| |
|
|
| toneysix | Дата: Вторник, 13.12.2011, 14:14 | Сообщение # 15 |
|
Джэдай
Группа:
I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус: 
| Princip sscanf.. Вообщем-то самый универсальный разделитель, который я когда-либо видел. Его автор упростил работу со строками, которых требуется как-нибудь интерпретировать в коде и разбить на части. С помощью его манипуляций можно выполнять сложные задачи с разделением строк любых данных. К тому же sscanf ещё является одним из быстрых разделителей при таком функционале, написанный на с++ языке в виде подгружаемого плагина.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
|
| |
|
|
|
 |
|
 | |
| |
|