Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 20
  1. #1
    Аватар для KeyMan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.04.2017
    Сообщений
    6
    Репутация:
    0 ±

    Header size, Code size, Data size, Stack size.

    Здравствуйте, у меня вопрос. Я в последнее время заметил у себя в компиляторе данные записи. Думал что это комментарии от компилятора, но наткнулся в инете на тему что это размеры того-сяго. Крч не помню что там было написано)
    Но вот не знаю, размеры мне не нравятся. Сильно они большие. Или же всё нормально? Вот поэтому хочу обратиться к профи. Вот сам коммент от компилятора:
    PHP код:
    Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase

    Header size
    :           7880 bytes
    Code size
    :          2429460 bytes
    Data size
    :         10537552 bytes
    Stack
    /heap size:      23600 bytesestimated maxusageunknowndue to recursion
    Total requirements
    :12998492 bytes 
    На этом мой вопрос заканчивается, жду от профи ответа!

  2. #2
    Аватар для _[Bupyc]_
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.07.2015
    Адрес
    Челябинск
    Сообщений
    9
    Репутация:
    3 ±
    Вот тут, подробно описано http://pro-pawn.ru/showthread.php?39...яснение

  3. #3
    Аватар для koberman
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    У тебя, судя по всему, где то слишком большой массив или дефайн который часто используется. Code size нормально, data size ужс. Ну и пишет про рекурсию видимо из-за этого

  4. #4
    Аватар для KeyMan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.04.2017
    Сообщений
    6
    Репутация:
    0 ±
    Цитата Сообщение от koberman Посмотреть сообщение
    У тебя, судя по всему, где то слишком большой массив или дефайн который часто используется. Code size нормально, data size ужс. Ну и пишет про рекурсию видимо из-за этого
    У меня есть три define которые я использую постоянно. И получается убрать всё заменить?

  5. #5
    Аватар для koberman
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    Цитата Сообщение от KeyMan Посмотреть сообщение
    У меня есть три define которые я использую постоянно. И получается убрать всё заменить?
    Эти дефайны должны иметь число, что будет означать максимальное количество. Тоже самое с массивами. Тебе надо лишь посмотреть не большое ли значение и если большое, то искать путь обхода

  6. #6
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±

  7. #7
    Аватар для KeyMan
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.04.2017
    Сообщений
    6
    Репутация:
    0 ±
    Цитата Сообщение от koberman Посмотреть сообщение
    Эти дефайны должны иметь число, что будет означать максимальное количество. Тоже самое с массивами. Тебе надо лишь посмотреть не большое ли значение и если большое, то искать путь обхода
    Все массивы которые были new string[1000]; поставил на нужное кол-во. А вот с define недопёр

    PHP код:
    #define ESCM SendClientMessage(playerid, COLOR_GREY, "Вы не уполномочены использовать эту команду!"); // Дефайн вывода текста
    #define ISCM SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!"); // Дефайн вывода текста 
    вот у меня по типу такого. Короче перевод)
    Последний раз редактировалось KeyMan; 03.04.2017 в 19:30.

  8. #8
    Аватар для DelAccount
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.09.2016
    Сообщений
    10
    Репутация:
    0 ±
    Кто что скажет о таких данных? Нормально или стоит обратить внимание на оптимизацию/переписать? 1800 строк.

    Header size: 5760 bytes
    Code size: 81904 bytes
    Data size: 554952 bytes
    Stack/heap size: 16384 bytes; estimated max. usage=501 cells (2004 bytes)
    Total requirements: 659000 bytes

  9. #9
    Аватар для _[Bupyc]_
    Пользователь

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

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

  10. Пользователь сказал cпасибо:
    KeyMan (03.04.2017)
  11. #10
    Аватар для koberman
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    Цитата Сообщение от KeyMan Посмотреть сообщение
    Все массивы которые были new string[1000]; поставил на нужное кол-во. А вот с define недопёр

    PHP код:
    #define ESCM SendClientMessage(playerid, COLOR_GREY, "Вы не уполномочены использовать эту команду!"); // Дефайн вывода текста
    #define ISCM SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!"); // Дефайн вывода текста 
    вот у меня по типу такого. Короче перевод)
    С этими дефайнами все нормально. После чего вообще у тебя такие размеры получились?

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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