#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
Я точно не знаю за что он отвечает но без него у меня вот что пишет
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-
Значит серверу не будет хватать памяти и он будет висеть периодически. (В моём случае, я слишком много переменных создавал внутри функции).
|
Насколько я знаю, компилятор ссылается на переполнение памяти в коде, то бишь пользователь выделил большее количество ячеек, чем было использовано.
Ну а в целом, 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, перед всеми инклудами. Можно с запасом.