Долго компилируются моды
#1

Например в моём моде 5500 строк. Он компилиться 25 секунд. Это доставляет. Как можно устроить, чтобы он компилился меньше по времени? Хотя бы секунд 5-7.

И что делать с размером мода? amx весит 5 мегабайт.
Reply
#2

у тя много глобальных переменных/массивов и все начальные значения этих глобальных переменных/ячеек массивов записываются в АМХ при компиляции. ВЫХОД - оптимизировать или разумно укоротить массивы согласно реальным потребностям сервера. Например, если в онлайне не бывает 200 игроков (вместе с ботами), все массивы где используется MAX_PLAYERS (равен 500) как кол-во каких-то элементов - заменить на 200

Code:
#if defined MAX_PLAYERS
  #undef MAX_PLAYERS
  #define MAX_PLAYERS 200
#endif
Также можно в начале скрипта поставить

Code:
#pragma compress 1
Reply
#3

Да, уже укоротил MAX_PLAYERS до ста - вес скрипта уменьшился в 2 раза.
Reply
#4

5Мб из-за 5500 строк вау о_О
Эт я незнаю сколько нужно иметь переменых..
НО можно создать AMX файл размером в 10 Мб а то и больше, при 100 строк в моде

Боюсь год или через два ты будешь опять отписыватся в этой теме:
Quote:
http://forum.sa-mp.com/index.php?topic=155480.0
Нашёл тут своих старых исходников, за 2010-11.... :]}

^^ Это в шутку ;}

А по теме, всё зависит от твоего процессора.
Я свой скрипт, 25684 строк (амх файл=641кб ) компилирую на Intel CoreDuo2@2,4 за 6.4 секунды
а на Amd Athlon 2,1+@1800Ghz тотже скрипт за 27 секунды, вот и решай
Reply
#5

У меня около 50-ти переменных.
Но есть одна которая даёт такой вес скрипту. Но увы, без неё не обойтись.

И еще размер амх как нибудь влияет на быстродействие мода?

У меня проц 2.0 GHz, играю и все делаю с ноутбука.
Reply
#6

Единственное, что могу порекомендовать, это поиграть с ключами оптимизации павн компилятора. Для того чтобы поглядеть список опций, нужно в командной строке виндоуса перейти в папку с павном и набрать pawncc без аргументов.

офф: У меня на Intel i7 950 плагин в режиме полной перекомпиляции релиза (одновременно windwos/linux) обычно компилируется за 7 минут 10 секунд (gcc компилирет немного медленней, но в компиляторе от Майкрософт у меня одна существенная оптимизация отключена). Долгая компиляция была главной причиной почему я купил новый компьютер
Reply
#7

И что мне с этим делать?

[img width=600 height=768]http://s48.radikal.ru/i119/1003/3b/97de746abdf1.png[/img]
Reply
#8

Это компилер, выбирай имя фаила для ввода, фаил для вывода, и ключ


Quote:
Originally Posted by MX_Master
у тя много глобальных переменных/массивов и все начальные значения этих глобальных переменных/ячеек массивов записываются в АМХ при компиляции. ВЫХОД - оптимизировать или разумно укоротить массивы согласно реальным потребностям сервера. Например, если в онлайне не бывает 200 игроков (вместе с ботами), все массивы где используется MAX_PLAYERS (равен 500) как кол-во каких-то элементов - заменить на 200

Code:
#if defined MAX_PLAYERS
  #undef MAX_PLAYERS
  #define MAX_PLAYERS 200
#endif
Также можно в начале скрипта поставить

Code:
#pragma compress 1
У меня размер мода в 6 раз уменьшился)
Reply
#9

Quote:
Originally Posted by ^Faus
Например в моём моде 5500 строк. Он компилиться 25 секунд. Это доставляет. Как можно устроить, чтобы он компилился меньше по времени? Хотя бы секунд 5-7.

И что делать с размером мода? amx весит 5 мегабайт.
У меня приблизительно 10 тыс строк, но мод весит меньше мегабайта) Правда у меня он всего на 50 игроков.
Reply
#10

Quote:
Originally Posted by ^Faus
И что мне с этим делать?
Это список ключей компилятора. Стандартный редактор запускает компилятор с одними параметрами. Ты можешь запускать с разными. Например может быть интересны -d - показывает сколько отладочной информации помещать в результирующий файл и более интересный -O - уровень оптимизации. Можно посмотреть как он будет влиять на скорость
Reply
#11

давно переназначал не только MAX_PLAYERS, но MAX_VEHICLES..
еще может помочь
Code:
#pragma dynamic 
Code:
т.е размер стека... при компиляции показывает ( с флагом v:2 если не ошибаюсь)
Reply
#12

MX_Master, подскажи пожалуйста, что значит #pragma compress 1
Reply
#13

Quote:
Originally Posted by pumpboy
MX_Master, подскажи пожалуйста, что значит #pragma compress 1
это указание для компилятора, которое ему говорит, что нужно максимально сжать данные амх и всё
если такое юзать ошибок не будет, но размер уменьшится вдвое
чессгря, о фатальных последствиях еще никто не жаловался
Reply
#14

нифига он не уменьшился. Каким был таким и остался.
Reply
#15

Quote:
Originally Posted by ^Faus
нифига он не уменьшился. Каким был таким и остался.
чет у меня тоже)
Reply
#16

ну это у вас, а у меня уменьшается (:
Reply
#17

Когда больше 7 чел в моде мод не компилируется, почему так?
Reply
#18

Quote:
Originally Posted by Eni
View Post
Когда больше 7 чел в моде мод не компилируется, почему так?
Что?
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)