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

    Статус
    Оффлайн
    Регистрация
    22.08.2014
    Сообщений
    32
    Репутация:
    22 ±

    Переполнение памяти

    У меня в каждом паблике/команде(DC_MD) создается локальный массив. (Для каждого массива подсчитываю ячейки)
    Сегодня засунул в папку с pawno файл: "-d3" - появилось переполнение.
    Если файл убрать, то переполнение не показывается.
    PHP код:
    Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase

    Header size
    :           3188 bytes
    Code size
    :            57556 bytes
    Data size
    :           241424 bytes
    Stack
    /heap size:      16384 bytesestimated maxusage=535 cells (2140 bytes)
    Total requirements:  318552 bytes 
    С чем это может быть связано, может дадите совет по правильному использованию?

     Пример использования локального массива. (Придерживаюсь такого способа)

    PHP код:
    stock OnPlayerSave(pid)
    {
        if(!
    GetPVarInt(pid"Login")) return Kick(pid);
        new 
    str[102 MAX_PLAYER_NAME];
        
    mysql_format(cHandlestrsizeof(str), "UPDATE `Accounts` SET `Sex`='%d',`Skin`='%d',`Admin`='%d',`Money`='%d',`Level`='%d' WHERE `Nick`='%s'",
        
    PInfo[pid][Sex],PInfo[pid][Skin],PInfo[pid][Admin],GetPlayerMoney(pid),PInfo[pid][Level]);
        
    mysql_function_query(cHandlestrfalse"","");
        return 
    true;


  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Это не переполнение. "-d3" - это опция, которая включает режим отладки и он показывает кол-во памяти, которое тратится в том или ином случае.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    22.08.2014
    Сообщений
    32
    Репутация:
    22 ±
    То есть, меры предпринимать не нужно?

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

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

  5. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Так-с... Давайте разберёмся. Вот у нас строка, отвечающая за стек.
    PHP код:
    Stack/heap size:      16384 bytesestimated maxusage=535 cells (2140 bytes
    Вот указан размер памяти, что выделен под стек на данный момент
    PHP код:
    16384 bytes 
    А вот показан размер занимаемой памяти из того, что уже выделено
    PHP код:
    535 cells (2140 bytes
    У вас сейчас свободно 14244 байт памяти.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    #ball (06.09.2014)
  7. #6
    Аватар для Archange
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2014
    Сообщений
    10
    Репутация:
    1 ±
    Сделай оптимизацию и это пропадет, допустим уменьшить размер текста т.е.

    У нас в строчке блокировке аккаунта используется максимум 256 ячеек, но ты вписал 1024 чтобы на всякий случай предохраниться, а вдруг не хватит - этого нельзя делать, идет переполнение памяти

    Запрещено:
    PHP код:
    string[1024]; 
    Разрешено:
    PHP код:
    string[256]; 
    Стринг можно использовать и меньше, но надо проверять где именно уменьшать стринг, в диалоговом окне может использоваться 700+ ячеек и ты уменьшишь до 256 то буквы/ символы не будут выводится, проверяй все ненужной и оптимизируй

  8. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Archange Посмотреть сообщение
    Сделай оптимизацию и это пропадет, допустим уменьшить размер текста т.е.

    У нас в строчке блокировке аккаунта используется максимум 256 ячеек, но ты вписал 1024 чтобы на всякий случай предохраниться, а вдруг не хватит - этого нельзя делать, идет переполнение памяти

    Запрещено:
    PHP код:
    string[1024]; 
    Разрешено:
    PHP код:
    string[256]; 
    Стринг можно использовать и меньше, но надо проверять где именно уменьшать стринг, в диалоговом окне может использоваться 700+ ячеек и ты уменьшишь до 256 то буквы/ символы не будут выводится, проверяй все ненужной и оптимизируй
    Фу-фу-фу. Под массивы нужно выделять не 1024 или 256 ячеек, а столько, сколько требуется для хранения данных! Ни больше, ни меньше.
    Но тут нет переполнения памяти. Перепрочтите сообщения выше и всё поймёте.Проблема давно решена
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Цитата Сообщение от Archange Посмотреть сообщение
    Сделай оптимизацию и это пропадет, допустим уменьшить размер текста т.е.

    У нас в строчке блокировке аккаунта используется максимум 256 ячеек, но ты вписал 1024 чтобы на всякий случай предохраниться, а вдруг не хватит - этого нельзя делать, идет переполнение памяти

    Запрещено:
    PHP код:
    string[1024]; 
    Разрешено:
    PHP код:
    string[256]; 
    Стринг можно использовать и меньше, но надо проверять где именно уменьшать стринг, в диалоговом окне может использоваться 700+ ячеек и ты уменьшишь до 256 то буквы/ символы не будут выводится, проверяй все ненужной и оптимизируй
    лол
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

  10. #9
    Аватар для Rasta
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.08.2014
    Сообщений
    32
    Репутация:
    22 ±
    Archange, я скинул вам пример, как я создаю массивы.
    (Для каждого массива подсчитываю ячейки)
    То, что вы написал - не годится.
    Тема уже давно закрыта.

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

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

 

 

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

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

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

Ваши права

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