SA-MP Forums Archive
#pragma dynamic - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: #pragma dynamic (/showthread.php?tid=298212)



#pragma dynamic - Skinni - 19.11.2011

Объясните пожалуйста что это такое "#pragma dynamic" как и зачем он используется? создаёт ли он нагрузку? объясните по подробнее буде очень благодарен!


Re: #pragma dynamic - Sergey_Walter - 19.11.2011

Я точно не знаю за что он отвечает но без него у меня вот что пишет


Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Header size: 14056 bytes
Code size: 2810544 bytes
Data size: 3707484 bytes
Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 6548468 bytes

я поставил #pragma dynamic 8500

и у меня стало


Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

ставь у себя начиная с #pragma dynamic 5000 и т.д пока не исчезнут варнинги


Re: #pragma dynamic - Norck - 19.11.2011

Это директива, задающая размер стека. Просто указывает, сколько памяти необходимо выделить под стек.


Re: #pragma dynamic - Skinni - 19.11.2011

Quote:
Originally Posted by Sergey_Walter
View Post
Я точно не знаю за что он отвечает но без него у меня вот что пишет


Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Header size: 14056 bytes
Code size: 2810544 bytes
Data size: 3707484 bytes
Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 6548468 bytes

я поставил #pragma dynamic 8500

и у меня стало


Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

ставь у себя начиная с #pragma dynamic 5000 и т.д пока не исчезнут варнинги
а из-за чего появляются эти варнинги? оптимизация хромает?


Re: #pragma dynamic - Crystal_Speed - 19.11.2011

Может и глупый вопрос, но где вы тут варнинги увидели?


Re: #pragma dynamic - OKStyle - 20.11.2011

Вот:
Code:
Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 6548468 bytes



Re: #pragma dynamic - -Stranger- - 20.11.2011

#pragma dynamic - Как было сказано выше, это размер стека. До Конца я сам не разобрался что к чему, но некоторые выяснил на личном опыте:
Если при компиляции выдаёт:
Quote:

Header size: 14056 bytes
Code size: 2810544 bytes
Data size: 3707484 bytes
Stack/heap size: 16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements: 6548468 bytes

Значит серверу не будет хватать памяти и он будет висеть периодически. (В моём случае, я слишком много переменных создавал внутри функции).

Стандартное значение это 4096, при увеличении этого размера, сервер будет кушать больше памяти.

Для себя я решил, что это временное решение проблемы, и по мере оптимизации кода, значение буду уменьшать, вплоть до стандартного, хота кто-то сказал: "нет ничего более постоянного, чем временное", так что....


Re: #pragma dynamic - Eo - 20.11.2011

Quote:
Originally Posted by -Stranger-
View Post
Значит серверу не будет хватать памяти и он будет висеть периодически. (В моём случае, я слишком много переменных создавал внутри функции).
Насколько я знаю, компилятор ссылается на переполнение памяти в коде, то бишь пользователь выделил большее количество ячеек, чем было использовано.

Ну а в целом, dynamic используют для ликвидации переполнения памяти методом регулировки размера стэка.

Решает проблему с переполнением, ускоряет компиляцию, но не ускоряет работу кода. Лишь уменьшает общий вес "на выходе".


Re: #pragma dynamic - Skinni - 20.11.2011

Всем спасибо, значит оптимизация и еще раз оптимизация!


Re: #pragma dynamic - Xotab - 20.11.2011

Quote:

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Header size: 8196 bytes
Code size: 2218316 bytes
Data size: 2245236 bytes
Stack/heap size: 16384 bytes; estimated max. usage=6839 cells (27356 bytes)
Total requirements: 4488132 bytes

В окне компилятора после компилирования пишет это. Что бы это убрать, нужно прописать #pragma dynamic значение usage, перед всеми инклудами. Можно с запасом.