Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Это не переполнение. "-d3" - это опция, которая включает режим отладки и он показывает кол-во памяти, которое тратится в том или ином случае.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

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

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

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

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

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

    Широко известно, что идеи стоят 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от Archange Посмотреть сообщение
    Сделай оптимизацию и это пропадет, допустим уменьшить размер текста т.е.

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    333
    Репутация:
    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,282
    Репутация:
    417 ±
    Теперь закрыта.

 

 

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

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

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

Ваши права

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