Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Profyan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±

    Память сервера (stack size, heap size, data size, code size)

    Всем привет.Меня недавно заинтересовали строки в pawno :
    Header size: 9068 bytes - Это вроде бы память потраченная на индексы и еще что то пабликов.(если нет - поправьте)
    Code size: 909660 bytes - Хотелось бы узнать про это.
    Data size: 957928 bytes - Про это тоже.Поподробнее если можно :)
    Stack/heap size: 16384 bytes; estimated max. usage=3554 cells (14216 bytes) - ну это как я знаю память стека/потраченная память.
    Total requirements: 1893040 bytes - И это наверное сумма всех значений выше..


    1.Расскажите пожалуйста поподробнее об этих строчках.
    2.#pragma dynamic увеличивает только память стека?
    3.Что нужно делать, чтобы уменьшить значение во 2ой и 3ей строчке?
    4.И влияет ли 1-3 строчки на оптимизацию, и на что они вообще влияют?!

    Заранее спасибо!



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Header size - размер заголовка AMX. Обычно там находится таблица экспортируемых public-функций и переменных.
    Data size - размер данных (переменные и константы).
    Code size - размер кода. Если конкретнее, то это размер сгенерированных инструкций AMX, так что не пытайся в .pwn умещать весь код в одну строку - компилятору плевать на то, как написан исходный код.
    Stack/heap size - объём памяти, выделяемой под стек. Обычно под стек выделяется 16384 байта (16 Кб). Если использовать директиву #pragma dynamic, под стек будет выделяться столько байт, сколько указано в директиве, но в твоём случае это не требуется, т.к. рассчитанное компилятором максимальное использование стека меньше порога в 16384 (14216 bytes).

    Всё это влияет на общий объём памяти, используемой сервером. Разумеется, нужно всегда стремиться к тому, чтобы этот объём был как можно меньше, т.к. некоторые хостинги могут не потянуть всякие RLS с 100500 Мб памяти в Total requirements. А для этого нужно и из переменных мусор убирать, и говнокод переписывать, много чего.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. 9 пользователя(ей) сказали cпасибо:
    #enotya (26.03.2017) Alanchick (17.07.2016) Aurelius (08.04.2020) BaBuIIIkaDrifteR (17.01.2015) franked (19.02.2016) Profyan (20.02.2014) semen7907 (20.02.2014) seriu (12.08.2014) [ForD] (20.02.2014)
  4. #3
    Аватар для Edwin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    196
    Репутация:
    22 ±
    Переполнена память стэка.
    Мой совет (скорее всего единственный верный для этого случая, да поправят меня опытнейшие): уменьшай числа в значениях переменных, в частности "new", так как стэк заполняется неиспользуемыми ячейками. Подсчитывай все размеры переменных и выставляй их желательно по размеру, и не забывай +1 ячейку под нулевое значение.

  5. Пользователь сказал cпасибо:
    Profyan (20.02.2014)
  6. #4
    Аватар для Profyan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2013
    Адрес
    Омск
    Сообщений
    196
    Репутация:
    22 ±
    Спасибо,теперь буду писать код для меня понятным, а не супер сжатым и неразборчивым!



    Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку
    Мартин Фаулер


    Skype
    profan99
    VK
    click




  7. #5
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Закрыто.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •